十大排序算法总结

排序算法平均时间复杂度最好情况最坏情况空间复杂度排序方式稳定性
冒泡排序$ O(n^2) $$ O(n) $$ O(n^2) $$ O(1) $In-place稳定
选择排序$ O(n^2) $$ O(n^2) $$ O(n^2) $$ O(1) $In-place不稳定
插入排序$ O(n^2) $$ O(n) $$ O(n^2) $$ O(1) $In-place稳定
希尔排序$ O(n \log n) $$ O(n \log^2 n) $$ O(n \log^2 n) $$ O(1) $In-place不稳定
归并排序$ O(n \log n) $$ O(n \log n) $$ O(n \log n) $$ O(n) $Out-place稳定
快速排序$ O(n \log n) $$ O(n \log n) $$ O(n^2) $$ O(\log n) $In-place不稳定
堆排序$ O(n \log n) $$ O(n \log n) $$ O(n \log n) $$ O(1) $In-place不稳定
计数排序$ O(n + k) $$ O(n + k) $$ O(n + k) $$ O(k) $Out-place稳定
桶排序$ O(n + k) $$ O(n + k) $$ O(n^2) $$ O(n + k) $Out-place稳定
基数排序$ O(n \times k) $$ O(n \times k) $$ O(n \times k) $$ O(n + k) $Out-place稳定
Licensed under CC BY-NC-SA 4.0
Document