排序算法效率比较
| 排序方法 | 平均时间复杂度 | 最坏情况下时间复杂度 | 额外空间复杂度 | 稳定性 |
|---|---|---|---|---|
| 简单选择排序 | O(N2) | O(N2) | O(1) | 不稳定 |
| 直接插入排序 | O(N2) | O(N2) | O(1) | 稳定 |
| 冒泡排序 | O(N2) | O(N2) | O(1) | 稳定 |
| 希尔排序 | O(Nd) | O(N2) | O(1) | 不稳定 |
| 堆排序 | O(Nlog2N) | O(Nlog2N) | O(1) | 不稳定 |
| 快速排序 | O(Nlog2N) | O(N2) | O(log2N) | 不稳定 |
| 归并排序 | O(Nlog2N) | O(Nlog2N) | O(N) | 稳定 |
| 基数排序 | O(D(N+R)) | O(D(N+R)) | O(N+R) | 稳定 |
每一种排序都有其自身优点,适用于不同的情况。应该根据具体的条件,
选择相应的排序方法,甚至将2种以上的排序方法结合使用。