




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章排序 插入排序交换排序选择排序归并排序外部排序 9 1插入排序 排序 将一个数据元素 或记录 的任意序列 重新排列成一个按关键字有序的序列 内部排序 整个排序过程完全在内存中进行 外部排序 由于待排序记录数据量太大 内存无法容纳全部数据 排序需要借助外部存储设备才能完成 称为外部排序 按排序依据原则 插入排序 直接插入排序 折半插入排序 希尔排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 归并排序 2 路归并排序 排序基本操作比较两个关键字大小 将记录从一个位置移动到另一个位置 排序算法的稳定性 假定在待排序的记录集中 存在多个具有相同键值的记录 若经过排序 这些记录的相对次序仍然保持不变 即在原序列中 ki kj且ri在rj之前 而在排序后的序列中 ri仍在rj之前 则称这种排序算法是稳定的 否则称为不稳定的 插入排序 基本思想 在一个已排好序的记录子集的基础上 每一步将下一个待排序的记录有序插入到已排好序的记录子集中 直到将所有待排记录全部插入为止 直接插入排序折半插入排序2路插入排序希尔排序 1 直接插入排序 基本思想 在插入第i i 1 个记录时 前面的i 1个记录已经排好序 需解决的关键问题 1 如何构造初始的有序序列 2 如何查找待插入记录的插入位置 r0123456 21 18 25 22 10 25 21 22 10 25 18 18 r 0 的作用 暂存单元 监视哨 voidInsSort RecordTyper intlength 对记录数组r做直接插入排序 length为数组的长度 for i 2 i length i r 0 r i j i 1 将待插入记录存放到r 0 中 while r 0 key r j key 寻找插入位置 r j 1 r j j j 1 将待插入记录插入到已排序的序列中 r j 1 r 0 InsSort 直接插入排序算法实现 直接插入排序算法评价 最好情况下 正序 最坏情况下 逆序 时间复杂度为O n2 时间复杂度为O n 平均情况下 随机排列 直接排序的时间复杂度为O n2 2 折半插入排序 排序过程 用折半查找方法确定插入位置的排序 例 i 1 30 1370853942620 i 213 1330 70853942620 i 76 6133039427085 20 i 820 613203039427085 折半插入排序算法实现 voidBinSort RecordTyper intlength for i 2 i low j r j 1 r j r low x 插入记录 折半插入排序算法评价 采用折半插入排序法 可减少关键字的比较次数 每插入一个元素 需要比较的次数最大为折半判定树的深度 如插入第i个元素时 设i 2j 则需进行log2i次比较 因此插入n 1个元素的平均关键字的比较次数为O nlog2n 虽然折半插入排序法与直接插入排序法相比较 改善了算法中比较次数的数量级 但其并未改变移动元素的时间耗费 所以折半插入排序的总的时间复杂度仍然是O n2 3 2路插入排序 目的减少移动记录次数 约为n2 8 使用DS 辅助向量 d 1 n 指针 first和final 当前最小和最大值位置 思想 将d 1 视为有序文件的中间记录 并将待插入记录r i key与d 1 key进行比较 若r i key d 1 key 则将r i 插入到d first d 1 之间 若r i key d 1 key 则将r i 插入到d 1 d final 之间 例如 49 38 65 97 76 13 27 49i 149firstfinali 24938finalfirsti 3496538finalfirsti 449659738finalfirst i 84949657697132738finalfirst 4 希尔排序 基本思想 将整个待排序记录分割成若干个子序列 在子序列内分别进行直接插入排序 待整个序列中的记录基本有序时 对全体记录进行直接插入排序 需解决的关键问题 1 应如何分割待排序记录 才能保证整个序列逐步向基本有序发展 2 子序列内如何进行直接插入排序 123456789 40 21 25 49 25 16 初始序列 30 08 13 defineT3intd 5 3 1 49 13 38 27 27 4 55 38 65 48 97 55 76 4 子序列的构成不是简单的 逐段分割 而是将相隔某个增量的记录组成一个子序列 希尔排序可提高排序速度 因为分组后n值减小 n 更小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件测试中的质量控制与保证机制试题及答案
- 道路冷补修复材料试题及答案
- 计算机三级考试新趋势试题及答案
- 嵌入式系统调试技巧考题试题及答案
- 数据库存储过程撰写技巧试题及答案
- 通信设备专业高频信号处理维修考核试卷
- 四级软件测试工程师访问量提升试题及答案
- 基于MySQL的后台数据库管理技巧试题及答案
- 嵌入式系统的市场潜力分析试题及答案
- 敏捷实践下的测试反馈循环试题及答案
- DB32/T 4220-2022消防设施物联网系统技术规范
- 车位转让合同协议书
- 合伙经营货车辆协议书
- 2025年农村个人果园承包合同
- 湖北省武汉市2025届高三年级五月模拟训练试题数学试题及答案(武汉五调)
- 医师挂证免责协议书
- 2025年数控技术专业毕业考试试题及答案
- 上海市2024年初中语文学业水平考试试卷真题(精校打印)
- 济南民政离婚协议书
- 车牌租赁协议和抵押合同
- 2025年内蒙古自治区初中学业水平考试数学模拟试题 (一)(含答案)
评论
0/150
提交评论