常见排序算法总结
NB三人组小结
# 三种排序算法的时间复杂度都是:O(nlogn)
# 一般情况下,就排序时间长短:
快速排序 < 归并排序 < 堆排序
# 三种排序算法的缺点:
- 快速排序:极端情况下排序效率低 (倒序列表)
- 归并排序:需要额外的内存开销 (空间复杂度O(n))
- 堆排序:在快的排序算法中相对较慢
常用排序算法总结
解释:
- 冒泡排序最好情况指的是改进过的排序,有序列表一趟就好。
- 快速排序最坏情况是指逆序列表,可以通过随机找参考点避免
- 空间复杂度,快排使用的递归需要在堆栈中保存记录递归层数;归并需要额外开辟新列表
- 稳定性:排序前后原本相等的元素相对位置不变则稳定;冒泡、插入、归并都是和相邻的元素交换和排序,不存在跳过其他元素的交换,所以是稳定的。