- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机软件及应用]第八章 排序2
第8章 排 序 学习目的要求: 8.3.2 堆排序 堆排序(Heap Sort)是利用堆的特性进行排序。 堆的定义如下: n个元素的序列为{K1,K2,…,Kn}, 当且仅当满足下列关系时,称之为堆。 Ki≤K2i ,Ki≤K2i+1或Ki≥K2i ,Ki≥K2i+1(i=1,2,…,n/2) 若将与此序列对应的一维数组看成是一棵完全二叉树按层次编号的顺序存储,则堆的含义表明,完全二叉树中所有非终端结点的值均不小于(或不大于)其左、右孩子结点的值。因此,堆顶元素的值必为序列中的最大值或最小值(即大顶堆或小顶堆)。 8.3 选择排序 8.3 选择排序 堆排序的基本思想是:对一组待排序的记录,首先把它们按堆的定义排成一个堆,将堆顶元素取出;然后把剩下的记录再排成堆,取出堆顶元素;依次下去,直到取出全部元素,从而将全部记录排成一个有序序列。 8.3 选择排序 实现堆排序需要解决两个问题: (1)如何将一个无序序列建成一个堆? (2)如何在输出堆顶元素之后,调整剩余元素成为一个新的堆? 建堆就是把待排序的记录序列{R1,R2,…,Rn},按照堆的定义调整为堆,使父结点的关键字大于(或小于)子结点的关键字。为此,我们先把待排序数据初始次序置入完全二叉树的各个结点中,然后由下而上逐层进行父子结点的关键字比较并交换,直到使其最后满足堆的条件。 建堆时是从最后一个非终端结点 n/2 开始的。 例如,假定待排序的一组数据序列为: 42 36 56 78 67 11 27 36 8.3 选择排序 40 55 49 73 81 64 36 12 27 98 例如: 排序之前的关键字序列为 12 36 81 73 49 98 81 73 55 现在,左/右子树都已经调整为堆,最后只要调整根结点,使整个二叉树是个“堆”即可。 98 49 40 64 36 12 27 对一组有n个记录的待排序序列进行按关键字递减排序时,先建立一个大顶堆,然后选取关键字值最大的堆顶记录与最后一个记录交换,再对前n-1个记录调整为一个新的大顶堆,如此反复直到排序结束。 8.3 选择排序 堆排序对n较大的文件很有效,对记录数较少的文件不值得提倡。整个堆排序的时间复杂度为O(nlog2n),堆排序仅需一个记录大小供交换用的辅助存储空间。对于存在相同关键字的记录的情况,堆排序是不稳定的。 8.3 选择排序 8.4 交换排序 基本思想是: 两两比较待排序记录的关键字,若发现两个记录的次序为逆序时,交换其存储位置,直到没有逆序的记录为止。 冒泡排序 快速排序 8.4 交换排序 8.4.1 冒泡排序 冒泡排序是一种简单的排序方法。 基本思想:对所有相邻记录的关键字值进行比较,如果是逆序(r[i]r[i+1]),则交换其位置,经过多趟排序,最终使整个序列有序。 假设在排序过程中,记录序列R[1..n]的状态为: 第 i 趟起泡排序 无序序列R[1..n-i+1] 有序序列 R[n-i+2..n] n-i+1 无序序列R[1..n-i] 有序序列 R[n-i+1..n] 比较相邻记录,将关键字最大的记录交换到 n-i+1 的位置上 8.4 交换排序 处理过程为: 第一趟:从第一条记录r[1]开始,直到最后一条记录r[n],对两两相邻的记录依此比较,若发现为逆序,则立即交换其位置,最后使这n条记录中关键字最大的记录“下沉”到最底部,既被交换到第n个位置上,它不参与下一趟排序; 第二趟:从第一条记录r[1]开始,直到第n-1条记录r[n-1],对两两相邻的记录依此比较,若发现为逆序,则立即交换其位置,最后使这n-1条记录中关键字最大的记录“下沉”到次底部,既被交换到第n-1个位置上,它不参与下一趟排序; 如此反复,最多经过(n-1)趟冒泡排序,就可以使整个序列成为有序序列。 49 38 65 97 76 13 27 30 初始关键字 38 49 65 76 13 27 30 97 第一趟 38 49 65 13 27 30 76 第二趟 38 49 13 27 30 65 第三趟 38 13 27 30 49 第四趟 13 27 30 38 第五趟 13 27 30 第六趟 38 49 76 97 13 97 27 97 97 30 13 76 76 76 13 65 27 30 65
您可能关注的文档
- [计算机软件及应用]struts2.doc
- [计算机软件及应用]SSCI使用指南.ppt
- [计算机软件及应用]T+环境部署及安装.ppt
- [计算机软件及应用]T-SQL编程基础.ppt
- [计算机软件及应用]T3升级T6工具指导手册V10.doc
- [计算机软件及应用]TCP-IP Protocol Suite Ch08.ppt
- [计算机软件及应用]TCP-IP培训.ppt
- [计算机软件及应用]tems基本介绍与使用.ppt
- [计算机软件及应用]VB第4章教案.ppt
- [计算机软件及应用]training.ppt
- 中国国家标准 GB/T 5211.9-2025颜料和体质颜料通用试验方法 第9部分:相同类型着色颜料耐光性的比较.pdf
- 《GB/T 5211.9-2025颜料和体质颜料通用试验方法 第9部分:相同类型着色颜料耐光性的比较》.pdf
- 《GB/T 37228-2025安全与韧性 应急管理 突发事件管理指南》.pdf
- GB/T 23724.3-2025起重机 检查 第3部分:塔式起重机.pdf
- 中国国家标准 GB/T 25163-2025防止儿童开启包装 可重新盖紧包装的要求与试验方法.pdf
- 《GB/T 25163-2025防止儿童开启包装 可重新盖紧包装的要求与试验方法》.pdf
- GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射.pdf
- 中国国家标准 GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射.pdf
- 《GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射》.pdf
- GB/T 11349.2-2025机械振动与冲击 机械导纳的试验确定 第2部分:用激振器作单点平动激励测量.pdf
最近下载
- 宾馆装修改造项目立项建议书.doc VIP
- 悬臂法挂篮施工监测方案.docx VIP
- 财税大楼装修项目建议书.doc VIP
- XXX教学楼装修改造项目建议书.pdf VIP
- 提高胸外科患者肺功能锻炼的依从性品管圈汇报书ppt.pptx
- 2025广西百色工业投资发展集团有限公司招聘27人笔试参考题库附答案解析.docx VIP
- 2025国内短剧行业市场规模、出海短剧市场机遇及未来短剧制作方向分析报告.pptx VIP
- 2025广西百色工业投资发展集团有限公司招聘27人考试备考题库及答案解析.docx VIP
- 2025广西百色工业投资发展集团有限公司招聘27人笔试备考试题及答案解析.docx VIP
- 小升初语文成语错别字专项练习.pdf VIP
文档评论(0)