时间复杂度对比
时间复杂度和稳定性
算法名称 | 最差时间复杂度 | 平均时间复杂度 | 稳定性 |
---|---|---|---|
冒泡排序 | O(n^2) | O(n^2) | 稳定 |
快速排序 | O(n^2) | O(n*logN) | 不稳定 |
选择排序 | O(n^2) | O(n^2) | 稳定 |
二叉树排序 | O(n^2) | O(n*logN) | 稳定 |
归并排序 | O(n*logN) | O(n*logN) | 稳定 |
堆排序 | O(n*logN) | O(n*logN) | 不稳定 |
希尔排序 | ~ | ~ | 不稳定 |
鸽巢排序 | Θ(n) | 不稳定 |
插入排序 二分插入排序 2路插入排序
希尔排序
希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n√n)
shell排序的时间复杂度是依赖于 argument sequence 的,所以你用不同的序列,时间复杂度不同
N^1.3是一个比较快的实现