排序算法效率比较
排序方法 | 平均时间复杂度 | 最坏情况下时间复杂度 | 额外空间复杂度 | 稳定性 |
---|---|---|---|---|
简单选择排序 | 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种以上的排序方法结合使用。