| 各种排序算法的性能 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 排序方法 | 最好时间复杂度 | 平均时间复杂度 | 最坏时间复杂度 | 辅助存储 | 稳定性 | 备注 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 简单选择排序 | O(n^2) | O(n^2) | O(n^2) | O(1) | 不稳定 | n小时较好 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 直接插入排序 | O(n) | O(n^2) | O(n^2) | O(1) | 稳定 | 大部分已有序时较好 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 冒泡排序 | O(n) | O(n^2) | O(n^2) | O(1) | 稳定 | n小时较好 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 希尔排序 | O(n) | O(nlogn) | O(ns)1<s<2 | O(1) | 不稳定 | s是所选分组 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 快速排序 | O(nlogn) | O(nlogn) | O(n^2) | O(logn) | 不稳定 | n大时较好 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 堆排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(1) | 不稳定 | n大时较好 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 归并排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(n) | 稳定 | n大时较好 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||