网站大量收购独家精品文档,联系QQ:2885784924

数据结构(牛小飞)4排序比较和习题.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  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文档。上传文档
查看更多

***总结和习题习题课各种排序方法的比较本章的主要内部排序方法本章的主要内部排序方法本章研究的内部排序方法主要有:插入排序直接插入排序希尔排序交换类排序起泡排序快速排序选择类排序简单选择排序堆排序归并排序基数排序多关键字排序链式基数排序插入排序基本思想:插入排序:将无序子序列中的一个或几个记录“插入”到有序序列中,从而增加记录的有序子序列的长度。12本章的主要排序方法a.直接插入排序(基于顺序查找)常见的插入排序算法O(n2)是一种稳定的排序方法b.希尔排序(基于逐趟缩小增量)是一种不稳定的排序方法本章的主要排序方法交换类排序01基本思想:依次两两比较相邻关键字,并交换不满足排序要求的关键字,直至全部有序。02本章的主要排序方法O(n2)O(nlogn)a.起泡排序常见的交换类排序算法是一种稳定的排序方法b.快速排序是一种不稳定的排序方法本章的主要排序方法选择类排序本章的主要内部排序方法基本思想:每一趟从待排序的n-i+1(i=1,2,3,…,n-1)个记录中选出关键字最小的记录,作为有序序列中第i个记录,直到全部记录排序完毕。STEP5STEP4STEP3STEP2STEP1O(n2)是一种不稳定的排序方法O(nlogn)常见的选择类排序算法a.简单选择排序是一种不稳定的排序方法b.堆选择排序本章的主要内部排序方法归并排序本章的主要内部排序方法基本思想:将两个或两个以上的有序子序列“归并”为一个有序序列。时间复杂度为Ο(nlogn)。是一种稳定的排序方法链式基数排序基本思想:在多关键字的记录序列中,每个关键字的取值范围相同,则按LSD法进行排序时,可以采用“分配-收集”的方法,不需要进行关键字间的比较。时间复杂度为O(d(n+rd))是稳定的排序方法各种内部排序方法的比较一、时间性能各种内部排序方法的比较平均的时间性能基数排序时间复杂度为O(nlogn):快速排序、堆排序和归并排序时间复杂度为O(n2):直接插入排序、起泡排序和简单选择排序时间复杂度为O(d(n+rd)):简单选择排序、堆排序和归并排序的时间性能不随记录序列中关键字的分布而改变。当待排记录序列按关键字顺序有序时直接插入排序和起泡排序能达到O(n)的时间复杂度快速排序的时间性能蜕化为O(n2)。各种内部排序方法的比较指的是排序过程中所需的辅助空间大小所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1);快速排序为O(logn),为递归程序执行过程中,栈所需的辅助空间;123二、空间性能各种内部排序方法的比较归并排序所需辅助空间最多,其空间复杂度为O(n);链式基数排序需附设队列首尾指针,则空间复杂度为O(rd)。0102各种内部排序方法的比较稳定的排序方法指的是,对于两个关键字相等的记录,它们在序列中的相对位置,在排序之前和经过排序之后,没有改变。排序之前:{·····Ri(K)·····Rj(K)·····}排序之后:{·····Ri(K)Rj(K)··········}三、排序方法的稳定性能各种内部排序方法的比较当对多关键字的记录序列进行LSD方法排序时,必须采用稳定的排序方法。快速排序、堆排序和希尔排序是不稳定的排序方法。对于不稳定的排序方法,只要能举出一个实例说明即可。例如:对{4,3,4,2}进行快速排序,得到{2,3,4,4}各种内部排序方法的比较关于“排序方法的时间复杂度的下限”本章讨论的各种排序方法,除基数排序外,其它方法都是基于“比较关键字”进行排序的排序方法。可以证明,这类排序法可能达到的最快的时间复杂度为O(nlogn)。(基数排序不是基于“比较关键字”的排序方法,所以它不受这个限制。)各种内部排序方法的比较例如:对三个关键字进行排序的判定树如下:K1K3K1K2K1K3K2K3K2K3K2K1K3K1K2K3K3K2K1K2K3K1K3K1K2K1K3K2树上的每一次“比较”都是必要的;树上的叶子结点包含所有可能情况。各种内部排序方法的比较一般情况下,对n个关键字进行排序,可能得到的结果有n!种,由于含n!个叶子结点的二叉树的深度不小于?log2(n!)?+1,则对n个关键字进行排序的比较次数至少是?log2(n!)??nlog2n(斯蒂林近似公式)

文档评论(0)

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

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

1亿VIP精品文档

相关文档