https://www.cnblogs.com/chengxiao/p/6103002.html
https://www.cnblogs.com/onepixel/articles/7674659.html
- 插入排序
- 直接插入排序
时间复杂度:
最好(正序): O ( n ) O(n) O(n)
最坏(逆序): O ( n 2 ) O(n^2) O(n2)
平均: O ( n 2 ) O(n^2) O(n2)
空间复杂度: O ( 1 ) O(1) O(1)
稳定
原始序列基本有序时该方法好 - 折半插入排序
时间复杂度:
最坏(逆序): O ( n 2 ) O(n^2) O(n2)
正序: O ( n l o g n ) O(nlogn) O(nlogn)
空间复杂度: O ( 1 ) O(1) O(1)
稳定 - 希尔排序(缩小增量排序)
平均时间复杂度: O ( n 1.4 ) O(n^{1.4}) O(n1.4)
空间复杂度: O ( 1 ) O(1) O(1)
不稳定
- 直接插入排序
- 快速排序
时间复杂度:
平均(最优): O ( n l o g n ) O(nlogn) O(nlogn)
最差(正序 逆序): O ( n 2 ) O(n^2) O(n2)
空间复杂度(有辅助栈):
最坏: O ( n ) O(n) O(n)
平均: O ( l o g n ) O(logn) O(logn)
不稳定 - 选择排序
- 选择排序
时间复杂度: O ( n 2 ) O(n^2) O(n2)
空间复杂度: O ( 1 ) O(1) O(1)
稳定 - 堆排序
时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)
空间复杂度: O ( 1 ) O(1) O(1)
不稳定
- 选择排序
- 归并排序
时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)
空间复杂度: O ( n ) O(n) O(n)
稳定 - 链式基数排序
时间复杂度: O ( d ∗ ( n + r d ) ) O(d*(n+rd)) O(d∗(n+rd))
空间复杂度: O ( r d ) O(rd) O(rd)
稳定