排序算法的稳定性与复杂度总结

时间:2022-01-10 16:53:24
排序算法 最好时间复杂度 平均时间复杂度 最坏时间复杂度 空间复杂度 是否稳定
冒泡排序 \(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)\) 不是