[理学]大学教程零起点数据结构--排序.pptVIP

[理学]大学教程零起点数据结构--排序.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文档。上传文档
查看更多
快速排序过程 初始关键字 48 35 18 49 12 68 33 i j 48 1,将r[1]存入r[0] 第1趟排序 将r[1].key为基准将r[1]排至最终位置 2,r[j].key与r[0].key比较, r[j].key r[0].key时将r[j]移动至r[i]位置 33 3,i+1开始逐渐增大,比较r[i].key 和r[0].key, r[i].key r[0].key时将r[i]移动至r[j]位置 4,j=j+1,重复2,3步骤, 直到i=j时将r[0]存入r[i]位置 49 12 48 第一趟排序完成 快速排序过程 一趟排序后关键字 35 18 68 i 48 分别对一趟排序后的两部分进行快速排序即可 33 49 12 48 j 33 12 35 18 33 已知序列 503,87,512,61,908,170,897,275,653,462 请给出采用快速排序法作升序排序时的每一趟的结果。 503,87,512,61,908,170,897,275,653,462 503 i j 503 87 512 61 908 170 897 275 653 462 462 512 275 908 170 503 第一趟排序结果 low到high之间记录进行快速排序 Void quick (list r, int low,int high) { i=low;j=high; r[0]=r[i]; if(i =j) return; while( ij ) { while( ij r[j].key=r[0].key ) j--; if( ij ) { r[i]=r[j]; i++; } while( ij r[i].key=r[0].key ) i++; if( ij ) { r[j]=r[i]; j--; } } r[i]=r[0] quick ( r,low,i-1 ); quick ( r,i+1,high) } 用快速排序法对数据序列 (49,38,65,97,16,53,134,27,39) 进行排序,写出其第一趟排序的全过程 49,38,65,97,16,53,134,27,39 49 i j 快速排序 时间复杂度:O(nlogn) 该算法不稳定 若数据序列本身有序, 则算法执行效率最低,近似O(n2) 7.4 选择排序 直接(简单)选择排序算法思想 首先从待排序序列中选取最小记录,把它与第一个记录交换,然后在剩余的记录中选择最小记录与第二个记录进行交换,直至排序完成 直接(简单)选择排序 堆排序 初始关键字:51 33 62 96 87 17 28 51 第一趟排序:[17]33 62 96 87 51 28 51 第二趟排序:[17 28] 62 96 87 51 33 51 第三趟排序:[17 28 33] 96 87 51 62 51 第四趟排序:[17 28 33 51] 87 96 62 51 第五趟排序:[17 28 33 51 51] 96 62 87 第六趟排序:[17 28 33 51 51 62] 96 87 第七趟排序:[17 28 33 51 51 62 87 96] N个数据需要多少趟排序? 直接选择排序算法 Void select ( list r,int n) { for( i=1; i=n-1; i++ ) { k=i; for( j=i+1; j=n; j++ ) if( r[j].key r[k].key ) k=j; if( k!=i ) swap( r[k],r[i] ); } } 时间复杂度:O(n2) 直接选择排序是不稳定的 7.4 选择排序 基本思想:对n个待排序记录的关键字进行两两比较,从中选出n/2个较小者再两两比较,直到选出关键字最小的记录为止,此为一趟排序。 一趟选出的关键字最小的记录称为“冠军”,而“亚军”是从与“冠军”比较失败的记录中找出。 输出“冠军”后,将(冠军)叶子结点关键字改为最大,继续进行锦标赛排序,直到选出关键字次小的记录为止,如此循环直到输出全部有序序列。 树形选择排序(锦标赛排序 ) 树形选择排序(锦标赛排序 ) 对关键字序列 72,73, 71,23, 94,16, 05,68 进行树形选择排序 05 23 05 72 23 16 05 72 73 71 2

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档