一些常用的排序演算法

2021-04-21 00:10:51 字數 1981 閱讀 1366

/**

* 排序演算法

* * 插入排序 |____直接插入排序 |____折半排序 |____希爾排序

* * 交換排序 |____氣泡排序 |____快速排序

* * 選擇排序 |____簡單選擇排序 |____堆排序 |____歸併排序

* * 分配排序 |____箱排序 |____基數排序

* * 

* @author kevin

* */

public class sorting else

break;}}

}/**

* 折半排序,降序 

* 在乙個有序的子檔案中,用折半查詢方法查詢代插入記錄應插入的位置。 

* 直接插入用的是順序查詢。

* * @param array

*/public void binary_insert_sort(int array)

for (int j = i - 1; j >= low; j--)

array[low] = temp;}}

/*** 希爾排序,降序 

* 把記錄按一定的增量分組,對每組用直接插入排序排序; 

* 隨著增量的減少,各分組中包含的記錄將越來越多,

* 當增量減少為1時,所有記錄序列變成一組。

* * @param array

*/public void shell_sort(int array) }}

if (t == 1) 

break;

if (t % 2 == 0)

t = t >> 1;

else

t = (t >> 1) + 1;}}

/*** 氣泡排序,降序 

* 從第乙個記錄開始兩兩比較,次序不對就交換它們的位置。

* * @param array

*/public void bubblle_sort(int array) }}

}/**

* 快速排序,降序 

* 選擇記錄中乙個適合的關鍵字,以此關鍵字對應的記錄為基準,然後重新安排待排序列的記錄。

*  對該關鍵字前面和後面的記錄重複這個過程。

* * @param array

* @param p

*            子檔案的下界

* @param q

*            子檔案的上界

*/public void quick_sort(int array, int p, int q)

while (array[i] < temp && j > i)

i++;

if (j > i)

}array[i] = temp;

if (p < i - 1)

quick_sort(array, p, j - 1);

if (j + 1 < q)

quick_sort(array, j + 1, q);

}/**

* 簡單選擇排序,降序 

* 首先找出所有記錄中最小的記錄,將它也第乙個記錄交換位置。 

* 然後再找次小的記錄,再與第二個記錄交換位置,依此類推這個過程。

* * @param array

*/public void ******_selection_sort(int array)

if (k != i) }}

/*** 二路歸併排序是將兩個有序記錄合併成乙個有序記錄

* 從兩個有序記錄中最小關鍵記錄開始比較輸出較小者,然後繼續比較,直到輸出所有記錄為止。

* @param a,b

* @return int

*/public int two_way_merge_sort(int a, int b)

while (i < a.length) 

c[k++] = a[i++];

while (j < b.length) 

c[k++] = b[j++];

return c;}}

一些常用演算法 排序

1.冒泡法 1 比較第乙個數和第二個數,若為逆序a 0 a 1 則交換,以此類推 直到第n 1個數和第n個數比較完為止 第一次氣泡排序,結果最大的數被安置在最後乙個元素位置上。2 對前n 1個數進行第二次氣泡排序,結果使次大的數被安置在n 1的位置上。3 重複上述過程,經過n 1次氣泡排序後,排序結...

常用的一些排序演算法

整理一下各種排序演算法 1.氣泡排序 時間複雜度o n 2 時間比較長,但是比較容易理解和實現。氣泡排序 public int sortarray int nums return nums 2.快速排序 選定乙個基準值 一般是陣列的第乙個值 一次把比基準小的數字放在左邊,比基準大的數字放在右邊。然後...

常用的一些排序演算法(C 實現)

常用的排序演算法有氣泡排序,選擇排序,插入排序,歸併排序 希爾排序,堆排序等 1 冒泡 氣泡排序就是像旗袍一樣,最大的值逐漸上浮,我的實現方法是採用遞迴的,當然也可以不用遞迴 void bubblesort2 int array,int length if index length 1 bubble...