排序算法的稳定性与复杂度总结
排序算法 | 最好时间复杂度 | 平均时间复杂度 | 最坏时间复杂度 | 空间复杂度 | 是否稳定 |
---|---|---|---|---|---|
冒泡排序 | \(O(n)\) | \(O({n^2})\) | \(O({n^2})\) | \(O(1)\) | 是 |
选择排序 | \(O({n^2})\) | \(O({n^2})\) | \(O({n^2})\) | \(O(1)\) | 不是 |
直接插入排序 | \(O(n)\) | \(O({n^2})\) | \(O({n^2})\) | \(O(1)\) | 是 |
归并排序 | \(O(n\log n)\) | \(O(n\log n)\) | \(O(n\log n)\) | \(O(n)\) | 是 |
快速排序 | \(O(n\log n)\) | \(O(n\log n)\) | \(O({n^2})\) | 最好:\(O(\log n)\) 最差:\(O(n)\) | 不是 |
希尔排序 | \(O(n)\) | \(O({n^{1.3}})\) | \(O({n^2})\) | \(O(1)\) | 不是 |