八种排序特点:
排序算法 | 时间复杂度 | 空间复杂度 | 稳定性 |
快速排序 | O(nlogn) | O(logn) | 不稳定 |
堆排序 | O(nlogn) | O(1) | 不稳定 |
希尔排序 | O(n^(1.3~1.5)) | O(1) | 不稳定 |
归并排序 | O(nlogn) | O(n) | 稳定 |
基数排序 | O(m*n) | O(n) | 稳定 |
插入排序 | O(n^2) | O(1) | 稳定 |
选择排序 | O(n^2) | O(1) | 不稳定 |
冒泡排序 | O(n^2) | O(1) | 稳定 |
各种排序耗时比较(快排已优化):
排序算法 | 20万个随机数 | 100万个随机数 | 1000万个随机数 | 1亿个随机数 |
插排+三取中+聚集递归快排 | 28ms | 127ms | 1219ms | 12009ms |
插排+三取中+聚集非递归快排 | 205ms | 325ms | 2664ms | 18043ms |
10行递归快排(无优化) | 330ms | 3402ms | 203509ms | |
递归快排(无优化) | 33ms | 250ms | 5702ms | |
非递归快排(无优化) | 683ms | 4505ms | 47941ms | 798365ms |
归并排序 | 46ms | 235ms | 2631ms | 28837ms |
希尔排序 | 47ms | 268ms | 2829ms | 29993ms |
堆排序 | 56ms | 297ms | 4203ms | 56959ms |
基数排序 | 480ms | 2362ms | 24047ms | |
插入排序 | 27090ms | |||
选择排序 | 53413ms | |||
冒泡排序 | 125281ms |