/**
* *
* */public class sort
public static sort getinstance()
return sort; }
private void move(int array, int from, int end) }
/**
* 交換陣列中的兩個元素的位置
* @param array 待交換的陣列
* @param i 第乙個元素
* @param j 第二個元素
*/
private void swap(int array, int i, int j)
} public void display(int array)
system.out.println(); }
public void insertsort(int array) }}
} private void shellinsert(int array, int step)
array[j + step] = temp;}}
} public void shellsort(int array, int steps)
} /*
* 結束條件:在一趟排序過程中沒有進行過交換記錄的操作。
* **/
public void bubblesort(int array)
}display(array);
if (!hasswap)
}}
/** 交換陣列中[low, high]的記錄,樞軸記錄到位,並返回其所在的位置。
* 此時,在它之前(後)的記錄均不大(小)於它。
* **/
private int partition(int array, int low, int high)
array[low] = array[high];
while (low < high && array[low] <= temp)
array[high] = array[low];
}array[low] = temp;
return low;
} private void qsort(int array, int low, int high)
} public void quicksort(int array)
public void selectsort(int array) }}
} /*
* n個元素的序列當且僅當滿足下面關係時,稱之為堆。
* * ki <= k2i 且 ki <= k2i + 1
* * 或
* * ki >= 2i 且 ki >= k2i + 1
* * 可以將陣列看成乙個完全二叉樹。
* * **/
private void heapadjust(int array, int start, int end)
if(temp >= array[i])
array[start] = array[i];
start = i; // temp 應該插在start
}array[start] = temp;
} public void heapsort(int array)
system.out.println("大堆: ");
display(array);
for (int i = array.length - 1; i > 0; i--)
} }
public class main ;
// static int arraytest = ;
static int steps = ;
private static sort sort = null;
/*** @param args
*/public static void main(string args)
}
後續繼續更新。 基本排序演算法Java實現
1 氣泡排序 氣泡排序 bubble sort,台灣另外一種譯名為 泡沫排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由...
基本排序演算法java實現
七種基於比較排序演算法記憶口訣 冒擇入希速歸堆 冒失選擇入口的希望是快速回歸馬王堆 氣泡排序 public class bubblesort 從右邊開始,每次迴圈最小值向左沉下去 選擇排序 public class selectionsort tmp arr i arr i arr k arr k ...
基本演算法 堆排序 Java實現
堆排序就是將序列調整為指定的堆,然後調整首尾元素的位置,取出末尾元素,反覆進行,直到將所有元素取出,形成乙個有序的序列。假設存在 個元素的序列 其中父節點值不大於子節點值的堆稱為小根堆 r i r2 i 1且 ri r 2i 2 父節點的值不小於子節點的堆稱為大根堆 r i r2 i 1且 存在乙個...