- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
排序地概念
堆排序:首先将这n个元素按关键码建成堆,将堆顶元素输出,得到n个元素中关键码最小(或最大)的元素。然后,再对剩下的n-1个元素建成堆,输出堆顶元素,得到n个元素中关键码次小(或次大)的元素。如此反复,便得到一个按关键码有序的序列。称这个过程为堆排序。 因此,实现堆排序需解决两个问题: 1. 如何将n个元素的序列按关键码建成堆; 2. 输出堆顶元素后,怎样调整剩余n-1个元素,使其按关键码成为一个新堆。 建堆方法:对初始序列建堆的过程,就是一个反复进行筛选的过程。n个结点的完全二叉树,则最后一个结点是第 个结点的子女。对第 个结点为根的子树筛选,使该子树成为堆,之后向前依次对各结点为根的子树进行筛选,使之成为堆,直到根结点。 例 n=8,关键字为(30,50,60,35,86,10,40,45)。调整成小顶堆。 35 86 10 50 60 30 (a) i=4不调整, 40 45 1 2 4 35 86 60 50 10 30 (b) i=2调整结果 40 45 3 35 86 60 50 10 30 (c) i=2调整 40 45 2 50 86 60 35 10 30 (d) i=2调整 40 45 2 45 86 60 35 10 30 (e) i=2调整结果 40 50 2 45 86 60 35 10 30 (f) i=1调整 40 50 1 45 86 60 35 30 10 (g) i=1调整结果 40 50 1 例:从结点i开始调整:求出r[i]的左孩子r[j] =r[2*i], 若r[j]有左孩子,比较左、右孩子,若左孩子右孩子,比较根结点和它的小孩子,小孩子上移到它的双亲位置, i=j; j=2*i; 直到树叶。 调整方法:设有m个元素的堆,输出堆顶元素后,剩下m-1个元素。将堆底元素送入堆顶,堆被破坏。将根结点与左、右子女中较小的进行交换。若与左子女交换,则左子树堆被破坏;若与右子女交换,则右子树堆被破坏。继续对不满足堆性质的子树进行上述交换操作,直到叶子结点,堆被建成。称这个自根结点到叶子结点的调整过程为筛选。 45 86 60 35 30 10 (a) 排序开始,输出元素10 40 50 1 45 86 60 35 30 50 (b) 将最后一个元素50移到根节点 40 1 j X=50 5030 30上移 X=50 5040 40上移 45 86 60 35 50 30 (c) 调整 40 1 j i 堆排序过程 45 86 60 35 40 30 (d) 调整 50 1 j i X=50 x移到j处 45 86 60 35 40 50 (e) 输出30,50移到根,再调整 i 50 j X=50 5035 35上移 45 86 60 50 40 35 (f) 再调整 i j X=50 5045 45上移 50 86 60 45 40 35 (g)再调整 i j X=50 x移到 j处 50 86 60 45 40 35 (h) 调整结果 i j * 第八章 排序 8.1 排序的概念、插入排序 8.2 交换排序 8.3 选择排序 8.4 归并排序 8.5 基数排序 8.6 外部排序简介 8.7 小结与习题 8.1 排序的概念、插入排序 排序(Sorting)又称分类,是计算机程序设计中的一种重要操作,即把一批任意序列的数据元素(或记录),重新排列成一个按关键字的序列。 定义:假设含有d个记录的序列为[R1, R2,……, Rd] 其对应的关键字序列为 [K1, K2,……, Kd] 需确定1,2,……d的一种排序 p1, p2,……, pd 使其对应的关键字满足下列非递减的关系: Kp1= Kp2=……= Kpd 这样原序列成为一个按关键字排序的序列: {Rp1, Rp2,……, Rpd} 排序方法的稳定与不稳定: 在某种方法排序之后,这些关键字相同的记录相对先后次序不变,即当Ki= Kj(1≤i ≤d, 1≤j≤d,i≠i)且ij,若在排序后的序列中Ri仍领先与Rj,则称所用的排序方法是稳定的。 排序分为两类:内排序和外排序 内排序:指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列。 外排序:指排序过程中还需访问外存储器,足够大的元素序列,因不能完全放入内存,只能使用外排序。 为了讨论方便,在此把排序关键字假设为整型,并且用顺序表(即一维数组)做存储结构。数据结构定义为: #define MAXSiZE 30/*顺序表的最大长度*/ ty
您可能关注的文档
最近下载
- AWSD1.1-2015(中文版)焊接技术标准.pdf VIP
- 2025年招生和对口招生文化素质测试数学试题及参考答案 完整版912.pdf VIP
- 高清焓湿图超清分辨率.pdf VIP
- 第二单元银屏乐声+《眺望你的路途》课件+2025-2026学年人音版(简谱)八年级音乐上册+.pptx VIP
- EN 14994-2007 气爆泄压(防爆门)保护系统.pdf VIP
- 2025年高校分类考试招生和对口招生文化素质测试语文试题及参考答案.pdf VIP
- 货代-国际物流常用知识.doc VIP
- 中考语文精选题集(浙江专用)专题16新闻阅读(原卷版+解析).docx VIP
- 2025年交管学法减分考试题库以及答案(160题完整版) .pdf VIP
- 质量异常处理流程.pdf VIP
原创力文档


文档评论(0)