【数据结构】排序算法比较及一些总结
2022/7/1 1:19:32
本文主要是介绍【数据结构】排序算法比较及一些总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 交换类排序趟数与初始状态有关;
- 选择、直接插入、折半插入、基数排序与初始状态无关;
- 序列初始状态基本有序:选用直接插入、冒泡排序;
- \(n\) 较小(\(n≤50\)):用直接插入、简单选择排序;
- \(n\) 较大,用 \(O(n\log_2n)\):快速排序(平均时间最短)、堆排序(辅助空间少于快排的\(O(\log_2n)\))、归并排序;
- 稳定 + \(O(n\log_2n)\):归并排序;
- 基于比较的排序方法中,当文件的 \(n\) 个关键字随机分布时,任何借助于“比较”的排序,至少需要 \(O(n\log_2n)\) 的时间;
- \(n\) 很大 + 关键字位数少且可分辨:基数排序;
- 记录本身的信息量较大时,可用链表作为存储结构;
- 堆 用于排序,在查找时无需,效率较低;
- 折半查找只能顺序存储,不能用链式存储;
- 基数排序 不需要进行记录关键字间的比较;
- 归并排序的 每趟归并 时间为 \(O(n)\),整过排序过程为 \(O(n\log_2n)\),空间复杂度为 \(O(n)\);
- 堆排序每趟 \(O(\log_2n)\),整个排序过程为 \(O(n\log_2n)\),建堆时间 \(O(n)\),调整时间 \(O(h)\)(\(h\) 为堆的高度)。
这篇关于【数据结构】排序算法比较及一些总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南