- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 7.4.1 简单选择排序 1.基本思想: 第1趟,从第1个到第n个记录中选择关键码最小的记录与第1个记录交换; 第2趟,从第2个到第n个记录中选择关键码最小的记录与第2个记录交换; … 第i趟, 从第i个到第n个记录中选择关键码最小的记录与第i个记录交换; … 直到第n-1趟,从最后两个记录中选择较小的记录放置在第n-1 位置。排序结束。 * 2.示例: 设排序表:49 14 38 74 96 65 49 8 55 27 第1趟之后:8 14 38 74 96 65 49 49 55 27 第2趟之后:8 14 38 74 96 65 49 49 55 27 (在本位就不用交换) 第3趟之后:8 14 27 74 96 65 49 49 55 38 第4趟之后:8 14 27 49 96 65 74 49 55 38 。。。 第9趟之后: 8 14 27 38 49 49 55 65 74 96 * * 7.4.3 堆排序 简单选择排序的思想简单,易于实现,但其时间性能没有优势,这是因为在每趟的选择中,没有把前面选择过程中的一些有用信息继承下来,因此每趟选择都是顺序的一一进行,如果某一趟的选择能够把前面有用的一些信息继承下来,则定会减少本趟的比较次数,提高排序效率,堆排序就做到了这一点。 * 如:序列 12,36,24,85,47,30,53,91是一个小顶堆; 序列 91,47,85,24,36,53,30,16是一个大顶堆。 1.堆的定义 设有n个元素的序列 R1,R2,…,Rn,当且仅当满足下述关系之一时,称之为堆。 前者称为小顶堆,后者称为大顶堆。 ki≤ k2i k2i+1 ki≥ k2i k2i+1 或 其中i=1,2,…,n/2 * 2.堆排序 堆特点:堆顶元素是整个序列中最大(或最小)的元素。 若将排序表按关键码建成堆,堆顶元素就是选择出的最大元素(或最小),这样就得到n个元素中的第一个的元素。 然后,再对剩下的n-1个元素建成堆,得到n个元素中关键码次大 (或次小)的元素。以此类推,如此反复,直到进行n-1次后,排序结束,便得到一个按关键码有序的序列。称这个过程为堆排序。 因此,实现堆排序需解决两个问题: 1. 如何将n个元素的排序序列按关键码建成堆(初始堆); 2. 怎样将剩余的n-1个元素按其关键码调整为一个新堆。 * 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.堆被破坏 调整:根结点与左右子女较大者比较,若比
您可能关注的文档
- 爱我中华主题班会教程.ppt
- 第八章_现代仓储与物流中心试卷.ppt
- 第7章螺纹连接试卷.ppt
- 爱写诗的小螃蟹教程.ppt
- 第八章_线路工程测量试卷.ppt
- 第八章_新闻传播法制的历史发展试卷.ppt
- 爱心树课件教程.ppt
- 第八章_有机高分子试卷.ppt
- 爱心树阅读示例教程.ppt
- 第八章_原根与离散对数试卷.ppt
- 2025年中国加氢脱硫化氢塔回流罐市场调查研究报告.docx
- 2025年河北张家口中考微机考试试题.pdf
- 2025年河北汽车行业发展概况分析及未来五年行业数据趋势预测.pdf
- 2025年中国冷轧钢板电源插座箱市场调查研究报告.docx
- 2025年中国励磁刷架市场调查研究报告.docx
- 2025年中国冷却水化学处理标准腐蚀试管市场调查研究报告.docx
- 2025年中国全自动升降柱市场调查研究报告.docx
- 2025年河北地区国开电大财务会计形成性考核(二)参考答案.pdf
- 2025年河北省普通高中学业水平选择性考试冲刺压轴卷(六)地理试题(无答案).pdf
- 2025年河北省张家口市统招专升本语文自考模拟考试(含答案).pdf
文档评论(0)