第10章排序(简)导论.pptVIP

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程的内容 本章内容 例如:假定一组记录为(15,67,23,15*,40),其中关键字同为15的记录有两个。如果一种排序方法使排序后的结果为(15,15*,23,40, 67),则称此方法是稳定的;若一种排序方法使排序后的结果可能为(15*,15,23,40,67) ,则称此方法是不稳定的。 10.2 插入排序 关键字序列T= (21,25,49,25*,16,08),请写出直接插入排序的具体实现过程。 例:关键字序列 T=(49,38,65,97, 76, 13, 27, 49*,55, 04),请写出希尔排序的具体实现过程。 课堂练习: 10.3 交换排序 关键字序列 T=(21,25,49,25*,16,08),请写出快速排序算法的一趟实现过程。 例3:以关键字序列(256,301,751,129,937,863,742,694,076,438)为例,写出执行快速算法的各趟排序结束时,关键字序列的状态。 基本思想   在待排记录中依次选择关键字最小的记录添加到有序序列中,逐渐缩小范围直至全部记录选择完毕。 基本思想   堆排序(HeapSort)是对选择排序的一种改进方法,属于树形排序法。在排序过程中,将R[1..n]看成是一棵完全二叉树的顺序存储结构,利用双亲结点和孩子结点间的内在关系来选择关键字最小的记录。 堆排序——若在输出堆顶元素之后,使得剩余n-1个元素的序列重又建成一个堆,则得到n个元素中的次小值。如此反复执行,便能得到一个有序序列,这个过程称之为堆排序。 当 i 和 j 都在两个表的表长内变化时,根据A[i]与B[j]的关键字的大小,依次把关键字小的对象排放到新表C[k]中; 当 i 与 j 中有一个已经超出表长时,将另一 个表中的剩余部分照抄到新表C[k]中。 总结: 掌握插入排序----直接插入排序、折半插入排序、希尔排序思想及其算法 掌握交换排序----冒泡排序(思想及其算法)、快速排序(思想和排序过程) 选择排序----简单选择排序(原理及其算法)、堆排序(思想及其排序过程) 归并排序---2-路归并排序原理和排序过程 掌握各种排序方法的时间和空间复杂度以及其稳定性 10.5 归并排序法 归并排序   所谓归并就是将两个或两个以上的有序表合并成一个有序表。 归并的基本操作是将两个位置相邻的有序记录子序列R[i..m]和R[m+1..n]归并成一个有序记录序列R[i..n]。 基本思想   将记录序列R[1..n]看成是n个长度为1的子序列,然后两两归并,得到┏n/2┓个长度为2或1的有序子序列。再两两归并,重复此过程,直至得到一个长度为n的有序序列为止。这种方法每次都将两个序列合并成一个序列,故称为2路归并排序。 例 初始关键字: [49] [38] [65] [97] [76] [13] [27] 一趟归并后: [38 49] [65 97] [13 76] [27] 二趟归并后: [38 49 65 97] [13 27 76] 三趟归并后: [13 27 38 49 65 76 97] 10.5 归并排序法 要解决的关键问题: 如何将两个有序表归并为一个有序表? 其基本思想是: 设两个有序表A和B的对象个数(表长)分别为 al 和 bl,变量 i 和 j 分别是表A和表B的当前检测指针。设表C是归并后的新有序表,变量 k 是它的当前存放指针。 08 21 25 25* 49 62 72 93 16 37 54 l m m+1 n initList i j 08 16 21 25 25* 37 49 54 62 72 93 l n k mergeList C表 A表 B表   将下面两个已排序的顺序表合并成一个有序表。顺序比较两者的相应元素,小者移入另一表中,反复如此,直至其中任一表都移入另一表为止。 49 13 65 97 76 7 80 A B  0   1 2 3 4 5 6 7

您可能关注的文档

文档评论(0)

过各自的生活 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档