九種常用排序的效能分析總結 [zhuan]
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 |
相關文章
- 5種排序演算法效能比較總結排序演算法
- 常用排序演算法總結排序演算法
- 常用排序演算法總結(1)排序演算法
- 常用排序演算法總結(2)排序演算法
- 常用的比較排序演算法總結排序演算法
- 前端效能優化常用總結前端優化
- 九種解決亂碼方法總結
- mongodb常用的兩種group方法,以及對結果排序MongoDB排序
- 幾種常見的排序演算法總結排序演算法
- LaTeX中各種常用盒子的使用總結
- 幾種常用的排序程式碼排序
- Elasticsearch 技術分析(九):Elasticsearch的使用和原理總結Elasticsearch
- MYSQL常用的效能指標總結和歸納MySql指標
- 九種排序演算法的 JavaScript 實現排序演算法JavaScript
- 幾種常見排序演算法總結排序演算法
- 幾種常用的排序演算法排序演算法
- Java中三種常用的排序方法Java排序
- 專案總結 | 九種缺失值處理方法總有一種適合你
- 第三章:查詢與排序(下)----------- 3.22 總結:10種排序演算法的對比分析排序演算法
- 陣列效能問題分析總結陣列
- 六種排序演算法的JavaScript實現以及總結排序演算法JavaScript
- css清除浮動float的七種常用方法總結CSS
- js陣列去重的三種常用方法總結JS陣列
- php常用的四種排序演算法PHP排序演算法
- Linux下的應用程式效能分析 總結Linux
- 八種常用排序演算法排序演算法
- Hive常用效能優化方法實踐全面總結Hive優化
- 排序演算法分析總結(附js實現)排序演算法JS
- 九種常見的資料分析模型模型
- 簡述幾種常用的排序演算法排序演算法
- hadoop的terasort排序總結Hadoop排序
- 第九周總結
- 資料結構第九節(排序(上))資料結構排序
- PerfDog效能狗上手體驗及總結分析
- VSCode外掛開發全攻略(九)常用API總結VSCodeAPI
- css的常用效果總結CSS
- Python基礎(九) 常用模組彙總Python
- 陣列的三種宣告方式總結、多維陣列的遍歷、Arrays類的常用方法總結陣列