九種常用排序的效能分析總結 [zhuan]

醉馬不肖發表於2012-09-07

http://blog.csdn.net/cjf_iceking/article/details/7953637


間間斷斷的將9種排序實現,並且將其以部落格筆記的形式記錄下來;現在就該來綜合的分析這九種排序,讓我們先來看看其演算法複雜度和穩定性的分析結果:

演算法複雜度以及穩定性分析

演算法名稱 平均時間 輔助空間 穩定性
氣泡排序 O(n2) O(1)
選擇排序 O(n2) O(1)
插入排序 O(n2) O(1)
自底向上歸併排序 O(nlog2n) O(n)
自頂向下歸併排序 O(nlog2n) O(n)
快速排序 O(nlog2n) O(n)
堆排序 O(nlog2n) O(1)
基數排序 O(dn) O(rn)
希爾排序 \ O(1)

排序的時間效率比較

下圖表名了各種演算法在不同資料規模下,完成排序所消耗的時間(毫秒為單位),從表中可以顯然看出O(n2)的排序演算法比O(nlog2n)的演算法 時間多出幾百上千倍,而且隨著資料資料規模增大時間比也會隨著增大;因為排序的資料採用隨機數,順序將被打亂,快速排序演算法優於其他排序演算法!
演算法名稱 1萬 2萬 3萬 4萬 5萬 6萬 7萬 8萬 9萬 10萬
氣泡排序 1442 5497 12206 21861 34017 49148 67394 88880 111939 139071
選擇排序 199 816 1790 3254 5062 7166 9645 12636 16102 19643
插入排序 178 717 1628 2882 4458 6446 8822 11649 14547 17914
自底向上歸併排序 10 20 30 42 50 60 70 80 96 103
自頂向下歸併排序 19 24 36 45 62 73 81 97 101 113
快速排序 2 5 8 11 14 18 21 25 29 32
堆排序 3 7 12 16 19 23 26 30 34 37
基數排序 9 21 30 40 49 59 66 75 90 98
希爾排序 3 8 11 15 24 24 29 35 40 41

相關文章