排序算法总结

参考资料

排序方法 平均情况 最好情况 最坏情况 空间 稳定性
冒泡 O(n^2) O(n) O(n^2) O(1) 稳定
简单选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定
直接插入排序 O(n^2) O(n) O(n^2) O(1) 稳定
希尔排序 O(nlogn) ~ O(n^2) O(n1.3) O(n^2) O(1) 不稳定
快速排序 O(nlogn) O(nlogn) O(n^2) O(logn)~O(n) 不稳定
堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳定
归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定
  • 冒泡排序:两层循环,外循环确定起始比较位置,内循环不断移动,与后一位比较判断是否交换
  • 选择排序:两层循环,外循环控制选择次数,内循环遍历取得最值
  • 插入排序:两层循环,外循环控制选择插入的对象,内循环向前遍历插入位置
  • 希尔排序:不断迭代缩小步距的插入排序,通过大步距减少插入排序中向前遍历的次数
  • 快速排序:确定序列中的关键值,根据关键值大小划分序列,子序列继续快排
  • 归并排序:迭代到两两排序,再逐层合并排序结果
  • 桶排序
  • 基数排序
  • 计数排序
Author

derolol

Posted on

2024-08-23

Updated on

2024-08-23

Licensed under

p