常见排序算法特性
| 排序算法名称 | 平均时间复杂度 | 最坏时间复杂度 | 最好时间复杂度 | 空间复杂度 | 稳定性 |
|---|---|---|---|---|---|
| 插入排序 | \(O(n^2)\) | \(O(n^2)\) | \(O(n)\) | \(O(1)\) | 稳定 |
| 希尔排序 | \(O(n^{1.3})\) | \(O(n^2)\) | \(O(n)\) | \(O(1)\) | 不稳定 |
| 选择排序 | \(O(n^2)\) | \(O(n^2)\) | \(O(n^2)\) | \(O(1)\) | 不稳定 |
| 堆排序 | \(O(n log_2 n)\) | \(O(n log_2 n)\) | \(O(n log_2 n)\) | \(O(1)\) | 不稳定 |
| 冒泡排序 | \(O(n^2)\) | \(O(n^2)\) | \(O(n^2)\) | \(O(1)\) | 稳定 |
| 快速排序 | \(O(n log_2 n)\) | \(O(n^2)\) | \(O(n log_2 n)\) | \(O(n log_2 n)\) | 不稳定 |
| 归并排序 | \(O(n log_2 n)\) | \(O(n log_2 n)\) | \(O(n log_2 n)\) | \(O(n)\) | 稳定 |
| 计数排序 | \(O(n+k)\) | \(O(n+k)\) | \(O(n+k)\) | \(O(n+k)\) | 稳定 |
| 基数排序 | \(O(n \times k)\) | \(O(n \times k)\) | \(O(n \times k)\) | \(O(n+k)\) | 稳定 |
特性:
-
快速排序对有序数组不友好。
-
与其他排序算法不同,基数排序、桶排序、计数排序都不基于比较和移动元素来进行排序,而是基于多关键字排序的思想。

浙公网安备 33010602011771号