- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c交换排序.ppt
交换排序 数据结构(第二十三讲) 知识回顾 插入排序的基本思想 希尔排序的基本思想 教学内容 交换排序介绍 起泡排序 快速排序 归并排序 基数排序 本讲重点、难点 重点 交换排序的基本思想 起泡排序算法 快速排序算法 掌握归并排序的基本思想 掌握基数排序的基本思想 难点 起泡排序算法 快速排序算法 交换排序 交换排序介绍 起泡排序 快速排序 归并排序 基数排序 交换排序 基本思想 两两比较待排序记录的关键码,如果发生逆序(即排列顺序与排序后的次序正好相反),则交换,直到所有记录都排好序为止。 主要分类 起泡排序 快速排序 起泡排序 交换排序介绍 起泡排序 快速排序 归并排序 基数排序 起泡排序 基本思想 每趟不断将记录两两比较,并按“前小后大”(或“前大后小”)规则交换。 优点及局限 优点:每趟结束时,不仅能挤出一个最大值到最后面位置,还能同时部分理顺其他元素;一旦下趟没有交换发生,还可以提前结束排序。 前提:顺序存储结构 起泡排序 例 关键字序列 T=(21,25,49,25*,16,08),请写出冒泡排序的具体实现过程。 起泡排序 起泡排序算法分析 最好情况:初始排列已经有序,只执行一趟起泡,做 n-1 次关键码比较,不移动对象。 最坏情形:初始排列逆序,算法要执行n-1趟起泡,第i趟(1? i? n) 做了n- i 次关键码比较,执行了n-i 次对象交换。此时的比较总次数KCN和记录移动次数RMN为: 起泡排序 起泡算法实现 void Bubblesort(ElemType R[],int n) { int flag=1; //当flag为0则停止排序 for (int i=1; in; i++) { //i表示趟数,最多n-1趟 flag=0;//开始时元素未交换 for (int j=n-1; j=i; j--) if (R[j]R[j-1]){ //发生逆序 ElemType t=R[j]; R[j]=R[j-1]; R[j-1]=t;flag=1; } //交换,并标记发生了交换 if(flag==0)return; } } 快速排序 交换排序介绍 起泡排序 快速排序 归并排序 基数排序 快速排序 基本思想 从待排序列中任取一个元素 (例如取第一个) 作为中心,所有比它小的元素一律前放,所有比它大的元素一律后放,形成左右两个子表; 然后再对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个。此时便为有序序列了。 优点及局限: 因为每趟可以确定不止一个元素的位置,而且呈指数增加,所以特别快! 前提:顺序存储结构 快速排序 例 关键字序列 T=(21,25,49,25*,16,08),请写出快速排序的算法步骤。 例 关键字序列 T=(21,25,49,25*,16,08),计算机如何实现快速排序算法的某一趟过程? 快速排序 算法实现 每一趟子表的形成是采用从两头向中间交替式逼近法; int Partition(SqList L,int low,int high){ //一趟快速排序 //交换子表 r[low…high]的记录,使支点(枢轴)记录到位,并返回其位置。返回时,在支点之前的记录均不大于它,支点之后的记录均不小于它。 L.r[0]=L.r[low]; //以子表的首记录作为支点记录,放入r[0]单元 while(low high){ //从表的两端交替地向中间扫描 while(lowhigh L.r[high].key=pivotkey ) - -high; L.r[low]=L.r[high]; //比支点小的记录交换到低端; while(lowhigh L.r[low].key=pivotkey) + +low; L.r[high]=L.r[low]; //比支点大的记录交换到高端; } L.r[low]=L.r[0]; //支
您可能关注的文档
最近下载
- 一年级数学起步,玩中学不焦虑——2025秋家长培训发言稿.pptx VIP
- 保险学(第五版)课件全套魏华林第0--18章绪论、风险与保险---保险市场监管、附章:社会保险.pptx VIP
- 电力市场的原理、变革与关键问题(41页).pptx VIP
- 《康复评定技术》课件——第五章 言语功能评定技术.ppt VIP
- 电子产品维修技术中职全套教学课件.pptx
- 化妆师理论知识考试模拟试卷及答案.docx VIP
- 《康复评定技术》课件——第三章 心肺功能评定技术.ppt VIP
- 2023年CSP-S组(提高组)初赛真题(文末附答案).pdf VIP
- DB53_T 1097-2022 受污染耕地严格管控技术规范.docx VIP
- 2021年一级建造师市政李四德-锦囊妙计.pdf VIP
文档评论(0)