[计算机软件及应用]第03章 排序问题和离散集合的操作.pptVIP

[计算机软件及应用]第03章 排序问题和离散集合的操作.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]第03章 排序问题和离散集合的操作

第三章 排序问题和离散集合的操作 3.1 合并排序 3.2 基于堆的排序 3.3 基数排序 3.4 离散集合的操作 3.1 合并排序 一 合并排序算法的实现 二 合并排序算法的分析 1. 合并排序算法的思想方法 假定有 8 个元素,第一步,划分为四对,每一对两个元素,用 merge 算法合并成四个有序的序列;第二步,把四个序列划分成两对,用 merge 算法合并成两个有序的序列;最后,再利用merge算法合并成一个有序的序列。 3. 合并排序算法的实现过程 1)在第一轮循环,s = 1、t =2,有 5 对 1 个元素的序列进 行合并,当 i = 10时,i + t = 12 n ,退出内部的 while 循环。但 i + s = 11,不小于 n,所以,不执行第 12 行的 合并工作,余留一个元素没有处理。 2. 合并排序算法的描述 合并排序算法的实现过程(续 1) 2)在第二轮 s = 2,t = 4, 有两对两个元素的序列进行合并, 在 i = 8 时,i + t = 12 n ,退出内部的while循环。但 i + s = 10 n,所以执行第 12 行的合并工作,把一个大 小为 2 的序列和另外一个元素合并,产生一个 3 个元素 的有序序列。 2. 合并排序算法的描述 合并排序算法的实现过程(续 2) 3)在第三轮 s = 4,t = 8, 有一对四个元素的序列进行合并, 在 i = 8 时,i + 8 = 16 n ,退出内部的while循环。 i + s = 12 n,不执行第12行的合并工作,余留一个序 列没有处理 。 2. 合并排序算法的描述 合并排序算法的实现过程(续 2) 4)在第四轮,s = 8, t = 16。在 i = 0 时,i + t = 16 n,不 执行内部的while循环,但 i + s = 8 n,所以执行第 12 行的合并工作,产生一个大小为11的有序序列 。 5)在第五轮,因为 t = 16 n,所以退出外部的while循环, 结束算法 2. 合并排序算法的描述 2. 合并排序算法的描述 1. template class Type 2. void merge_sort(Type A[ ],int n) 3. { int i,s,t = 1; // i:开始合并时第一个序列的起始位置 5. while (tn) { // s:合并前序列的大小 6. s = t; t = 2 * s; i = 0; // t:合并后序列的大小 7. while (i+tn) { 8. merge(A,i,i+s-1,i+t-1,t); // i, i + s – 1 ,i + t – 1 9. i = i + t; // 被合并的两个序列的边界 10. } 11. if (i+sn) 12. merge(A,i,i+s-1,n-1,n-i); 13. } 14. } 二 合并排序算法的分析 假定 n 是 2 的羃。 外部 while 循环的循环体的执行次数:k = logn 次。 内部while循环 merge执行的 所产生 序列 元素比较总次数 merge执行次数 比较次数 序列数 长度 最少 最多 1 2 3 j 合并排序算法的分析(续 1) 合并排序算法的分析(续 2) 合并排序算法的分析(续 1) 合并排序算法的执行时间,至少为: 二 合并排序算法的分析 合并排序算法的分析(续 2) 合并排序算法的执行时间,至多为 : 二 合并排序算法的分析 3.2 基于堆的排序 一

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档