排序演算法總結 java

2021-07-05 23:09:45 字數 848 閱讀 2597

1、歸併排序  mergesort

歸併 排序具體工作原理如下(假設序列共有n個元素):

將序列每相鄰兩個數字進行歸併操作(merge),形成floor(n/2)個序列,排序後每個序列包含兩個元素

將上述序列再次歸併,形成floor(n/4)個序列,每個序列包含四個元素

重複步驟2,直到所有元素排序完畢

時間複雜度  o(nlogn)

空間複雜度 o(n)

public class mergesort  else 

}while (i < m) 

while (j <= t) 

system.arraycopy(tmp, 0, a, s, tmp.length);}

/** * 

* @param a

* @param s

* @param len

* 每次歸併的有序集合的長度

*/public static void mergesort(int a, int s, int len) 

// -------將剩下的數和倒數乙個有序集合歸併-------//

if (c != 0)

merge(a, size - c - 2 * len, size - c, size - 1);

// -------遞迴執行下一趟歸併排序------//

mergesort(a, 0, 2 * len);}

public static void main(string args) ;

mergesort(a, 0, 1);

for (int i = 0; i < a.length; ++i) 

}}

Java排序演算法總結

前面講了10種基本的排序演算法,現在來作下總結,基於下面幾個方面來比較各個排序演算法的優劣 時間複雜度,空間複雜度,穩定性,適用場景 排序演算法 時間複雜度 空間複雜度 穩定性適用場景 直接選擇排序 o n 2 o 1 不穩定時間效率不高,但是空間效率很高,演算法實現比較簡單 堆排序o nlogn ...

Java排序演算法(十二) 總結

前面講了10種基本的排序演算法,現在來作下總結,基於下面幾個方面來比較各個排序演算法的優劣 時間複雜度,空間複雜度,穩定性,適用場景 排序演算法 時間複雜度 空間複雜度 穩定性適用場景 直接選擇排序 o n 2 o 1 不穩定時間效率不高,但是空間效率很高,演算法實現比較簡單 堆排序o nlogn ...

排序演算法總結(java實現)

排序演算法的分類如下 1.插入排序 直接插入排序 折半插入排序 希爾排序 2.交換排序 冒泡泡排序 快速排序 3.選擇排序 直接選擇排序 堆排序 4.歸併排序 5.基數排序。關於排序方法的選擇 1 若n較小 如n 50 可採用直接插入或直接選擇排序。當記錄規模較小時,直接插入排序較好 否則因為直接選...