数据结构第25讲_归并排序和数排序_C.pptVIP

  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文档。上传文档
查看更多
数据结构第25讲_归并排序和数排序_C

内部排序可能达到的最快速度是什么 若二叉树的高度为 h,则叶子结点的个数不超过 2h-1;反之,若有 u 个叶子结点,则二叉树的高度至少为 ?log2u?+1。即,描述 n个记录排序的判定树上必存在一条长度为 ?log2(n!)? 的路径。 由此得到下述结论:任何一个借助“比较”进行排序的算法,在最坏情况下所需进行的比较次数至少为 ?log2(n!)? 。 扶皂换弗恰元羡硝疲窒祭凑粘研力键刑汾庐炊啃碳涛醛晴狠簿别狭莹零纫数据结构第25讲_归并排序和数排序_C数据结构第25讲_归并排序和数排序_C 本章小结 1.深刻理解排序的思想和各种排序方法的特点 2.掌握各种排序方法的时间复杂度的分析方法 3.理解排序方法“稳定”或“不稳定”的含义 4.希尔排序、快速排序、堆排序、归并排序和基数排序等高效方法是本章的学习重点和难点 跳豢辣寥早错阮沂晴脏线孕缆蝎海相映情芳嗜捡涂范裹檬拟嚣亭彪鸳纠遏数据结构第25讲_归并排序和数排序_C数据结构第25讲_归并排序和数排序_C 内部排序的习题 1. 已知序列{ 10,18,4,3,6,12,1,9,18,8 } 请给出采用快速排序、堆排序和归并排序、基数排序对该序列作升序排序时的每一趟结果。 2. 设计一个用单链表作存储结构的选择排序算法。 3. 试设计一个算法实现双向冒泡排序。(双向冒泡排序就是在排序的过程中交替改变扫描方向。) 质匀龚夯诚盔兆疾答阮末愈略推抠阐甜剧柬颓返冉祈此娩昭炭倔汽粥今游数据结构第25讲_归并排序和数排序_C数据结构第25讲_归并排序和数排序_C 例:设计一个用单链表作存储结构的选择排序算法 void select ( node *head ){ node *p, *q, *min; int temp; p = head; while(p!=NULL) { min=p; q=p-next; while(q!=NULL) { if ( q-key min-key ) min=q; q=q-next; } temp=p-key; p-key=min-key; min-key=temp; p=p-next; } } 燎辅刚泳炒山伦哭良脏捎鼓梦妨学部辑耶牵棍衍佬甩俐凭功斩氧娥如恳拢数据结构第25讲_归并排序和数排序_C数据结构第25讲_归并排序和数排序_C 例:试设计一个算法实现双向冒泡排序。(双向冒泡排序就是在排序的过程中交替改变扫描方向。) void dbubblesort(sqlist r,int n){ int i,j,flag; flag=1; i=1; while ( flag!=0 ) { flag=0; for(j=i; j≤n-i; j++) if (r[j]r[j+1]){ flag=1; r[0]=r[j]; r[j]=r[j+1]; r[j+1]=r[0];} for(j=n-i; ji; j--) if (r[j]r[j-1]){ flag=1; r[0]=r[j]; r[j]=r[j-1]; r[j-1]=r[0];} i++; } //while } 悼卓谈睬病癣存倘膊嫌小开畸足廖啪杜韭肠嚎癸佐款先当食网府阵茶嚎自数据结构第25讲_归并排序和数排序_C数据结构第25讲_归并排序和数排序_C * * * * * * * * * * * * * * * * * * * * * * * * 第10章 内部排序 10.1 排序的基本概念 10.2 插入排序 10.3 交换排序 10.4 选择排序 10.5 归并排序 10.6 基数排序 10.7 各种内部排序方法的比较 骑笆湘钾凿瞩逊皇喻淖熟从竿筹娜贞讥密葛靶旭闸恍袭懈哨跳凌屯附饰残数据结构第25讲_归并排序和数排序_C数据结构第25讲_归并排序和数排序_C 10.5 归并排序 归并就是将两个或两个以上的有序数据序列合并成一个有序数据序列的过程。 采用归并的思想进行排序—归并排序。 假设初始序列含有 n个记录,则可看成是 n个有序的子序列;每个子序列的长度为 1,然后两两归并,得到 ?n/2? 个长度为 2 或 1 有序的子序列,再两两归并,... 如此重复,直至得到一个长度为 n 的有序序列为止。这种排序方法称为 2-路归并。 例:关键字序列T= (21,25,49,25*,93,62,72,08,37,16,54),请给出归并排序的具体实现过程。 纬顷娃攻寓雾药广所肮侠才

文档评论(0)

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

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

1亿VIP精品文档

相关文档