- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
25 25* 08 21 16 49 1 2 3 4 5 6 16 25* 08 25 21 49 1 3 6 5 4 2 25 25* 21 08 16 49 16 25* 21 08 25 49 交换 1 号与 5 号对象, 5 号对象就位 从 1 号到 5号 重新 调整为最大堆 堆调整 25* 16 08 21 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 25* 16 21 08 25 49 08 16 21 25* 25 49 交换 1 号与 4 号对象, 4 号对象就位 从 1 号到 4 号 重新 调整为最大堆 堆调整 21 16 25* 08 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 21 16 08 25* 25 49 08 16 21 25* 25 49 交换 1 号与 3 号对象, 3 号对象就位 从 1 号到 3 号 重新 调整为最大堆 堆调整 16 08 25* 21 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 16 08 21 25* 25 49 08 16 21 25* 25 49 交换 1 号与 2 号对象, 2 号对象就位 从 1 号到 2 号 重新 调整为最大堆 堆调整 21 25 25* 49 16 08 1 2 3 4 5 6 i 21 25 25* 16 49 08 1 3 6 5 4 2 i 21 25 49 25* 16 08 初始关键字集合 21 25 49 25* 16 08 i = 3 时的局部调整 建立初始的最大堆 21 25 25* 49 16 08 1 2 3 4 5 6 i 49 25 25* 16 21 08 1 3 6 5 4 2 21 25 49 25* 16 08 49 25 21 25* 16 08 i = 1 时的局部调整 形成大顶堆 i = 2 时的局部调整 建立初始的最大堆 最大堆的第一个对象r[1]具有最大的关键字,将r[1]与r[n]对调,把具有最大关键字的对象交换到最后,再对前面的n-1个对象,使用堆的调整算法HeapAdjust(1, n-1),重新建立最大堆。结果具有次最大关键字的对象又上浮到堆顶,即r[1]位置。 再对调r[1]和r[n-1],调用HeapAdjust (1, n-2),对前n-2个对象重新调整。 如此反复执行,最后得到全部排序好的对象序列。这个算法即堆排序算法。 typedef SqList HeapType; //顺序存储方式 基于初始堆进行堆排序 void HeapAdjust(HeapType H, int s, int m) { //调整H.r[s]的关键字,使H.r[s…m]成为一个大顶堆 ElemType rc=H.r[s]; for (int j=2*s; j=m; j*=2) //沿较大的孩子结点向下筛选 { if ((jm) (LT(H.r[j].key,H.r[j+1].key))) ++j; //j为key较大的结点下标 if (!(LT(rc.key,H.r[j].key))) break; //找到rc待插位置s H.r[s]=H.r[j]; s=j; /*改变后的局部子堆顶的值,s随着 j的向下移动而向下移动*/ } H.r[s]=rc; //插入 } 最大堆的向下调整算法 void HeapSort ( HeapType H ) { int i; RedType temp; for (i=H.length/2; i0; --i) // 把H.r[1..H.length]建成大顶堆 HeapAdjust ( H, i, H.length ); for (i=H.length; i1; --i) { temp=H.r[i]; H.r[i]=H.r[1]; H.r[1]=temp; /* 将堆顶记录和当前未经排序子序列Hr[1..i]中 最后一个记录相互交换 */ HeapAdjust (H, 1, i
您可能关注的文档
最近下载
- 2025呼和浩特粮油收储有限公司招聘18名工作人员笔试备考题库及答案解析.docx VIP
- 一种含电极的智能指环、灌胶治具及其封装工艺.pdf VIP
- The Wonderful Wizard of Oz-绿野仙踪(带动画) 课件.pdf VIP
- 2025至2030中国老年照护行业市场发展分析及竞争格局与投资发展报告.docx
- 2010年考研英语真题及解析.pdf VIP
- 浙江省强基联盟2024-2025学年高一上学期10月联考生物试卷.docx VIP
- 第一章 应急管理导论-2.ppt VIP
- 大连理工工程力学课件0.pdf VIP
- 大行距造林中杨树营养面积与大行距经济效益的研究.docx VIP
- 2025学宪法讲宪法知识竞赛题库及参考答案.pptx
文档评论(0)