数据结构与算法Java版罗文劼第7章排序技术课件教学.pptVIP

数据结构与算法Java版罗文劼第7章排序技术课件教学.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文档。上传文档
查看更多
数据结构与算法Java版罗文劼第7章排序技术课件教学.ppt

PPT研究院 POWERPOINT ACADEMY * * * 91 47 24 36 53 30 85 16 a.初始堆 输出堆顶元素,再将最后一个元素放入堆顶(为了操作简便,将堆顶元素R1与Rn交换)。 b.堆被破坏 调整:根结点与左右子女较大者比较,若比根小,交换。 c.右子树不满足堆,继续调整 。 d.到了叶子结点,调整结束,堆建成。 85 85 47 47 16 30 53 91 16 47 24 36 53 30 85 91 85 47 24 36 53 30 16 91 * R1与Rn-1交换,堆被破坏。 对R1与Rn-2调整。 仅需调整一次, 堆建成 。 堆调整结束。 85 85 47 47 16 30 53 91 85 30 47 47 16 85 53 91 85 53 47 47 16 85 30 91 * 第二个问题的背景: 输出堆顶元素后,将堆底元素送入堆顶(或将堆顶元素与堆底元素交换),堆可能被破坏。 破坏的情况仅是根结点和其左右孩子之间可能不满足堆的特性,而其左右子树仍然是局部的堆。 在这种情况下,将其R1 … Ri整理成堆。 (i=n-1..1) * 91 47 24 36 53 30 85 16 a.初始堆。 输出堆顶元素,再将最后一个元素放入堆顶(为了操作简便,将堆顶元素R1与Rn交换)。 b.堆被破坏 调整:根结点与左右子女较大者比较,若比根大,交换 c.右子树不满足堆,继续调整 d.到了叶子结点,调整结束,堆建成。 16 47 24 36 53 30 85 91 24 85 47 36 53 30 16 91 24 85 47 36 16 30 53 12 * * 【例】建堆的过程: 设初始排序序列:30 24 85 16 36 53 91 47 ,建成大顶堆。 30 24 16 36 53 91 85 47 a.8个结点的初始状态。 从R4结点开始调整; b.调整结束后,以R4为 根的子树满足堆特性。 再将以R3结点为根的 子树调整为堆; 30 24 47 36 53 91 85 16 c. 以 R3为根的子树满足堆特性。 再将以R2结点为根的子树调整为堆; 30 24 47 36 53 85 91 16 4、堆排序的实现 * 建堆过程示例 91 47 24 36 53 85 30 16 91 47 24 36 53 30 85 16 以R2为根的子树满足堆特性。 再将以R1结点为根的子树调整为堆 d. 调整结束后,整棵树为堆。 30 47 24 36 53 85 91 16 * 堆排序: 对n个元素的序列进行堆排序,先将其建成堆,以根结点与第n个结点交换;调整前n-1个结点成为堆,再以根结点与第n-1个结点交换;…;重复上述操作,直到整个序列有序。 * 8.5 归并排序 归并排序的思想是将几个相邻的有序表合并成一个总的有序表,本节主要介绍2-路归并排序。 1.两个有序表的合并 二路归并排序的基本操作是将两个有序表合并为一个有序表。 R: 25 38 46 75 18 37 40 46 78 80 s m m+1 t R1: 18 25 37 38 46 46 75 78 80 s t * * 2. 2-路归并算法 2-路归并的基本思想是:只有1个元素的表总是有序的,所以将排序表R[1..n],看作是n个长度为len=1的有序子表,对相邻的两个有序子表两两合并到R1[1..n],使之生成表长len=2的有序表;再进行两两合并到R[1..n]中,…,直到最后生成表长len=n的有序表。这个过程需要「log2n」趟。 * 56 47 69 48 27 98 56 59 38 28 66 47 56 48 69 27 98 56 59 28 38 66 47 48 56 69 27 56 59 98 28 38 66 27 47 48 56 56 59 69 98 28 38 66 27 28 38 47 48 56 56 59 66 69 98 * * 3.2-路归并排序的递归算法 * 7.6基数排序 基数排序是一种借助

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档