- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
排序技术.
8.6 各种排序算法的比较 1.时间复杂性 O(nlog2n) O(nlog2n) O(nlog2n) 归并排序 O (nlog2n) O(nlog2n) O(nlog2n) 堆排序 O(n2) O(n2) O(n2) 简单选择排序 O(n2) O(nlog2n) O(nlog2n) 快速排序 O(n2) O (n) O(n2) 起泡排序 O(n2) O(n1.3) O(nlog2n) 希尔排序 O(n2) O(n) O(n2) 直接插入排序 最坏情况 最好情况 平均情况 排序方法 8.6 各种排序算法的比较 2.空间复杂性 O(n) 归并排序 O(1) 堆排序 O(1) 简单选择排序 O(log2n) ~O(n) 快速排序 O(1) 起泡排序 O(1) 希尔排序 O(1) 直接插入排序 辅助空间 排序方法 8.6 各种排序算法的比较 3.算法的稳定性 希尔排序 快速排序 堆排序。 直接插入排序 冒泡排序 直接选择排序 归并排序 不稳定的 稳定的 8.6 各种排序算法的比较 4.算法的简单性 希尔排序 快速排序 堆排序 归并排序 直接插入排序 冒泡排序 直接选择排序 改进的(复杂的) 简单的 8.6 各种排序算法的比较 5.与待排序记录个数的关系 从待排序的记录个数n的大小看,n越小,采用简单排序方法越合适,n越大,采用改进的排序方法越合适。 因为n越小,O(n2)同O(nlog2n)的差距越小,并且输入和调试简单算法比输入和调试改进算法要少用许多时间。 8.6 各种排序算法的比较 6.记录本身信息量的大小 记录本身信息量越大,移动记录所花费的时间就越多,所以对记录的移动次数较多的算法不利。 排序方法 最好情况 最坏情况 平均情况 直接插入排序 O(n) O(n2) O(n2) 起泡排序 0 O(n2) O(n2) 直接选择排序 0 O(n) O(n) 三种简单排序算法的记录移动次数比较 8.6 各种排序算法的比较 7.与数据的初始状态(关键字的分布)的关系 1)当待排序记录按关键码有序时,插入排序和起泡排序能达到O(n)的时间复杂度;对于快速排序而言,这是最坏的情况,此时的时间性能蜕化为O(n2); 2)选择排序、堆排序和归并排序的时间性能不随记录序列中关键字的分布而改变。 作业:P294 8.2 void Listsort( Node *first) { Node *p,*q,*r,*u,*pre; int b; pre=first;p=first-next;q=p-next; while (qp) { while (qq!=p) { while (qp-dataq-data) p=p-next; if (p!=q){ u=q-next;r=pre-next; 8.6 各种排序算法的比较 while (r-data=q-data) {pre=r;r=r-next;} pre-next=q; q-next=r;p-next=u; q=u;pre=first; } else q=q-next; } } } 课堂作业 1. 设有5000?个无序的元素,希望用最快的速度挑选出其中前50?个最大的元素,最好选用(?)? 法。 A.?冒泡排序? B.?快速排序? C.?堆排序? D.?基数排序 2. 最简单的交换排序方法是________排序。 课堂作业 3. 有初始的无序序列为{98,65,38,40,12,51,100,77,26,88}, 给出对其进行归并排序(升序)的每一趟的结果。 4. 一组记录的排序码为(47、78、61、33、39、80),则利用堆排序的方法建立的初始堆为( )。 A. 78 47 61 33 39 80 B. 80 78 61 33 39 47 C. 80 78 61 47 39 33 D. 80 61 78 39 47 33 5. 直接插入排序需要_________个记录的辅助空间。 6. 在插入和选择排序中,若初始数据基本正序,则选用_______;若初始数据基本反序,则选用______。 课堂作业 7. 已知序列{15,18,60,4
文档评论(0)