- 1、本文档共93页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.3.3 堆排序 n1---n5 n1~n4成堆 2 6 4 3 1 9 2 4 n1 n2 n3 n4 n5 n6 n7 n8 9 8 7 6 1 2 4 4 3 1 9 2 1 n1 n2 n3 n4 n5 n6 n7 n8 9 8 7 6 10.3.3 堆排序 n1---n4 n1~n3成堆 2 4 4 3 1 9 2 1 n1 n2 n3 n4 n5 n6 n7 n8 9 8 7 6 4 2 2 3 4 2 1 9 4 1 n1 n2 n3 n4 n5 n6 n7 n8 9 8 7 6 4 10.3.3 堆排序 n1---n3 n1~n2成堆 2 3 4 2 1 9 4 1 n1 n2 n3 n4 n5 n6 n7 n8 9 8 7 6 4 1 3 2 2 4 1 1 9 4 3 n1 n2 n3 n4 n5 n6 n7 n8 9 8 7 6 4 3 10.3.3 堆排序 n1---n2 2 2 4 1 1 9 4 3 n1 n2 n3 n4 n5 n6 n7 n8 9 8 7 6 4 3 1 2 2 1 4 1 1 9 4 3 n1 n2 n3 n4 n5 n6 n7 n8 9 8 7 6 4 3 2 1 2 3 4 6 7 8 9 堆排序算法 typedef SqTable HeapType; void HeapAdjust(HeapType H,int s,int m) { //H.r[s..m]中除H.r[s].key外均满足堆定义,将对H.r[s]调整为大顶堆 rc=H.r[s]; // 暂存根结点的记录 for(j=2*s;j=m;j*=2){ // 沿key较大的孩子结点向下筛选 if(jmH.r[j].keyH.r[j+1].key) ++j;//j为key较大孩子记录的下标 if(rc.key=H.r[j].key) break; // 不需要调整 H.r[s] = H.r[j]; s = j; // 把大关键字记录往上调 } //for H.r[s] = rc; // 回移筛选下来的记录 } // HeapAdjust void HeapSort(HeapType H) { // 对顺序表H进行堆排序。 for(i=H.length/2;i0;--i) // 把H.r[1..H.length]建成大顶堆 HeapAdjust(H, i, H.length ); w=H.r[1]; H.r[1]=H.r[H.length]; H.r[H.length]=w; //交换堆顶和堆底 for(i=H.length-1;i1;--i){ HeapAdjust(H,1,i); //从根开始调整,将H.r[1..i] 重新调整为大顶堆 w=H.r[1]; H.r[1]=H.r[i]; H.r[i]=w; //将堆顶记录和堆底交换 } //for } // HeapSort 10.3.3 堆排序 时间复杂度:O(nlogn) 空间复杂度:O(1) 优点: 最坏情况下时间复杂度也仅为O(nlogn) 。 缺点: 运行时间主要耗费在建初始堆和调整堆上,排序数据较少时,不值得提倡。 10.3.4 二叉树排序 基本思想(对选择排序的改进): 将欲排序的元素一一以建立二叉树的方式插入; (1)每一个节点最多只有两个子节点(左节点、右节点) (2)若一节点有子节点,则该节点的数据要比左节点的数据大,且比右节点的数据小(左节点parent ≤右节点) 51 16 66 11 32 25 37 90 75 99 81 ZHAO QIAN LI SUN ZHOU WU WANG CHEN 中序遍历即为有序 42 42 15 61 22 54 38 42 15 42 15 61 42 15 61 22 42 15 61 22 54 38 42 15 61 22 54 10.3.4 二叉树排序 void BSTSort( SqList L ) { // 利用二叉排序树对顺序表L进行排序 BiTree T=NULL; // 初始化二叉排序树为空树 for(i=1;iL.length;++i) Insert_BST( T,L.r[i]); // 按顺序表L构造二叉排序树 i=0; InOrder(T,Output(T,L,i)); // 中序遍历二叉排序树 //通过函数指针引用Output,将排序的记录由小到大输出至L.r[i] } // BST
您可能关注的文档
- 视频监控网关配置方法.ppt
- 试点地区监测五年实施方案.doc
- 试卷 华东师范大学2009年攻读硕士学位研究生入学试题.doc
- 试卷成绩分析培训.ppt
- 试论会计理论研究方法体系.doc
- 试论我国民事证据交换制度的完善.doc
- 试题 二项式定理.doc
- 试题页表3(单项选择题).doc
- 试析当代大学生权益保护.doc
- 试验段施工方案(修改).doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 2025年内蒙古时事政治考试试卷带解析必考题.docx VIP
- 人教版数学三年级下册单元试卷【1-8合集,含答案】.pdf VIP
- 2025年内蒙古时事政治考试试卷带解析参考答案.docx VIP
- (答案)奥赛经典-奥林匹克数学中的几何问题---习题与讲解(第1-2章).pdf VIP
- 奥赛经典奥林匹克数学中的几何问题.pdf VIP
- 奥的斯电梯ACD4 原理图纸注释.pdf VIP
- 2025国家能源集团新疆哈密能源化工有限公司社会招聘(51人)笔试参考题库附答案解析.docx VIP
- 建设项目环境影响报告表.PDF VIP
- 呼吸科利用PDCA循环提高住院患者吸入剂使用正确率品管圈.pptx VIP
- 2024-2030年全球气动导弹弹射发射器(PMEL)行业现状、重点企业分析及项目可行性研究报告.docx
文档评论(0)