- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 排序软件学院
* * * * * * 合并算法描述: 算法Merge (R,t,m,n . X) M1 [初始化指针] i←t .j←m+1 .k←1 . M2 [比较 i和 j所指记录] WHILE(i≤m) AND(j≤n) DO (IF Ki≤Kj THEN(Xk←Ri .i←i+1 . ) ELSE(Xk←Rj .j←j+1 . ) k←k+1 . ) M3 [复制余留记录] WHILE (i≤m) DO (Xk←Ri ?. i←i+1. k←k+1.) WHILE (j≤n) DO (Xk←Rj ?. j←j+1. k←k+1.) ▌ Merge算法分析: 关键词比较次数≤n-t+1 记录移动次数为 n-t+1 2、合并排序: 两路合并:一次合并两个文件 合并排序:利用两路合并过程进行排序。 基本思想:设初始文件有 n 个记录,首先把它看成是 n 个长度为 1 的有序子序列 (合并项),先做两两合并,得到 ?n / 2? 个长度为 2 的合并项 (如果 n 为奇数,则最后一个有序子序列的长度为1);再做两两合并…,如此重复,最后得到一个长度为 n 的有序序列。 开始 25 57 48 37 12 92 86 33 25,57 37,48 12,92 33,86 第一趟合并 25,37,48,57 12,33,86,92 第二趟合并 12,25,33,37,48,57,86,92 第三趟合并 合并排序过程示例 算法Merge (R, t, m, n. X):一次合并算法,假定文件(Rt, Rt+1, …,Rm)和(Rm+1, …, Rn)已经有序,合并这两个文件,得到排序好的新文件(Xt, Xt+1, …, Xn); 算法MPass (R, n, 1ength.X):一趟合并算法,将文件R中长度为length的子文件,两两合并到文件X中,n是R记录数,该函数中调用了Merge(); 算法MSort (R,n) :合并排序算法,该函数通过调用函数Mpass(),实现两路合并排序。 一趟合并MPass (R, n, 1ength. X)的基本思想 设文件R中的n个记录已经分为一些长度为len的子文件,将这些子文件两两合并,合并成一些长度为2len的子文件,结果放到X中。 如果n不是2len的整数倍,则一趟合并到最后,可能遇到两种情形: 剩下一个长度为len的子文件和另一个长度不足len的子文件,可用一次merge算法,将它们合并成一个长度小于2len的子文件。 只剩下一个子文件,其长度小于或等于len,可将它直接抄到X中。 一趟归并算法 算法MPass(R, n, 1ength.X) MP1 [初始化] i?1 . MP2 [合并相邻的两个长度为length的子文件] WHILE i≤n – 2*length + 1 DO ( Merge(R, i, i+length-1, i+2*length-1. X ) . i?i+2*length .) MP3 [处理余留的长度小于2*length的子文件] IF i+length–1n THEN Merge(R, i, i+length-1, n. X) ELSE FOR j=i TO n DO Xj←Rj . ▌ 归并排序算法 21 25 25* 25* 93 62 72 08 37 16 54 49 21 25 49 62 93 08 72 16 37 54 21 25 25* 49 08 62 72 93 16 37 54 08 08 21 16 25 21 25* 25 49 25* 62 37 72 49 93 54 16 37 54 62 72 93 len=1 len=2 len=4 len=8 len=16 两路合并排序算法 算法MSort(R, n) //X是辅助文件,其记录结构与R相同 MS1 [初始化] length?1 . MS2 [交替合并] WHILE lengthn
您可能关注的文档
最近下载
- 组织变革与组织文化组织变革与组织文化.pptx VIP
- 舌尖上的广东详解.ppt VIP
- 苏教版七年级数学上册期中考试质量测试卷附参考答案.doc VIP
- 2023-中国海外投资指数.pdf VIP
- Unit6Nurturingnature招聘启事(单元写作讲义)英语外研版2019选择性(原卷版)-.docx
- 简单到难的数独200题(后附答案).docx VIP
- 原发性骨质疏松症诊疗指南.pptx
- 陕09J04-1、陕09J04-2、陕09J04-3 内装修(墙面)、内装修(配件)、内装修(吊顶)陕西 建筑 图集.docx VIP
- 细辛与临床 附 疑、难、重、奇案73例.pdf VIP
- 铁路信号号继电器.ppt VIP
原创力文档


文档评论(0)