Algorithm 九種常用排序的效能分析

2022-07-09 22:09:15 字數 1180 閱讀 8677

最近間間斷斷的將9種排序演算法用c實現,並且將其以部落格筆記的形式記錄下來,其中各個排序演算法的描述部分特別參考了csdn上太陽落雨

的部落格!現在就該來綜合的分析這九種排序,讓我們先來看看其演算法複雜度和穩定性的分析結果:

下圖表名了各種演算法在不同資料規模下,完成排序所消耗的時間(毫秒為單位),從表中可以顯然看出o(n2)的排序演算法比o(nlog2n)的演算法 時間多出幾百上千倍,而且隨著資料資料規模增大時間比也會隨著增大;因為排序的資料採用隨機數,順序將被打亂,快速排序演算法優於其他排序演算法!

演算法名稱

1萬2萬

3萬4萬

5萬6萬

7萬8萬

9萬10萬

氣泡排序

1442

5497

12206

21861

34017

49148

67394

88880

111939

139071

選擇排序

199816

1790

3254

5062

7166

9645

12636

16102

19643

插入排序

178717

1628

2882

4458

6446

8822

11649

14547

17914

自底向上歸併排序36

9121518

2226

2833

自頂向下歸併排序37

1115

1823

2731

3640

快速排序25

8111418

2125

2932

堆排序3712

1619

2326

3034

37基數排序921

3040

4959

6675

9098

希爾排序38

1115

2424

2935

4041

[1] 

[2] 

Algorithm 排序演算法

閒來無事回顧一下原來所學的排序演算法,包括冒泡 選擇 插入 希爾 快速 歸併排序,這六種。首先依次講解原理,最後放出實現及測試速度原始碼。我想大部分人學習的第乙個排序演算法就是這個。顧名思義,如泡泡般,越到水面就越大,即經過連續不斷的判斷,選取大 或小 的值進行交換,一輪結束後,未排序資料最後面的就...

Algorithm 選擇排序

選擇排序 比如在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換.第n 1趟遍歷剩下的2個資料,找出其中最小的數值與第n 1個元素交換,至此選擇排序完成。舉個例子 5 7 6 4 3 8 第一趟 3 ...

九種排序演算法

一 插入排序 直接插入排序 以從小到大排序為例 void insertsort int a,int len 直接插入排序最好的情況就是不需要移動,直接就是乙個從大到小排好的順序,那麼就只需要比較一遍就可以了 不需要移動 交換 時間複雜度為o n 最差的情況下需要全部移動一遍,就是按照從小到大的順序排...