- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                数据结构中各种排序算法比较
                    数据结构中各种排序算法比较 
1 快速排序(QuickSort)快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。(1)?如果不多于1个数据,直接返回。(2)?一般选择序列最左边的值作为支点数据。(3)?将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据。(4)?对两边利用递归排序数列。快速排序比大部分排序算法都要快。尽管我们可以在某些特殊的情况下写出比快速排序快的算法,但是就通常情况而言,没有比它更快的了。快速排序是递归的,对于内存非常有限的机器来说,它不是一个好的选择。?2 归并排序(MergeSort)归并排序先分解要排序的序列,从1分成2,2分成4,依次分解,当分解到只有1个一组的时候,就可以排序这些分组,然后依次合并回原来的序列中,这样就可以排序所有数据。合并排序比堆排序稍微快一点,但是需要比堆排序多一倍的内存空间,因为它需要一个额外的数组。3 堆排序(HeapSort)堆排序适合于数据量非常大的场合(百万数据)。堆排序不需要大量的递归或者多维的暂存数组。这对于数据量非常巨大的序列是合适的。比如超过数百万条记录,因为快速排序,归并排序都使用递归来设计算法,在数据量非常大的时候,可能会发生堆栈溢出错误。堆排序会将所有的数据建成一个堆,最大的数据在堆顶,然后将堆顶数据和序列的最后一个数据交换。接下来再次重建堆,交换数据,依次下去,就可以排序所有的数据。4?Shell排序(ShellSort)Shell排序通过将数据分成不同的组,先对每一组进行排序,然后再对所有的元素进行一次插入排序,以减少数据交换和移动的次数。平均效率是O nlogn 。其中分组的合理性会对算法产生重要的影响。现在多用D.E.Knuth的分组方法。Shell排序比冒泡排序快5倍,比插入排序大致快2倍。Shell排序比起QuickSort,MergeSort,HeapSort慢很多。但是它相对比较简单,它适合于数据量在5000以下并且速度并不是特别重要的场合。它对于数据量较小的数列重复排序是非常好的。5?插入排序(InsertSort)插入排序通过把序列中的值插入一个已经排序好的序列中,直到该序列的结束。插入排序是对冒泡排序的改进。它比冒泡排序快2倍。一般不用在数据大于1000的场合下使用插入排序,或者重复排序超过200数据项的序列。6?冒泡排序(BubbleSort)冒泡排序是最慢的排序算法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O n^2 的算法。7 交换排序(ExchangeSort)和选择排序(SelectSort)这两种排序方法都是交换方法的排序算法,效率都是?O n2 。在实际应用中处于和冒泡排序基本相同的地位。它们只是排序算法发展的初级阶段,在实际中使用较少。8 基数排序(RadixSort)基数排序和通常的排序算法并不走同样的路线。它是一种比较新颖的算法,但是它只能用于整数的排序,如果我们要把同样的办法运用到浮点数上,我们必须了解浮点数的存储格式,并通过特殊的方式将浮点数映射到整数上,然后再映射回去,这是非常麻烦的事情,因此,它的使用同样也不多。而且,最重要的是,这样算法也需要较多的存储空间。9?总结下面是一个总的表格,大致总结了我们常见的所有的排序算法的特点。
排序法	?平均时间	最差情形	稳定度	额外空间	备注		冒泡	?O n2 	??O n2 	?稳定	O 1 	n小时较好		交换	??O n2 	??O n2 	不稳定	O 1 	n小时较好		选择	?O n2 	?O n2 	不稳定	O 1 	n小时较好		插入	?O n2 	?O n2 	稳定	O 1 	大部分已排序时较好		基数	O logRB 	O logRB 	稳定	O n 	B是真数 0-9 ,
R是基数 个十百 		Shell	O nlogn 	O ns  1 2	不稳定	O 1 	s是所选分组		快速	O nlogn 	O n2 	不稳定	O nlogn 	n大时较好		归并	O nlogn 	O nlogn 	稳定	O 1 	n大时较好		堆	O nlogn 	O nlogn 	不稳定	O 1 	n大时较好		
                您可能关注的文档
- 数与代数专项练习.doc
 - 施工组织进度图之流水图.docx
 - 施工负责人绩效评定.doc
 - 学校食品安全专项检查表.doc
 - 施工许可证及新建道路规定.doc
 - 学校管理人员考核标准.doc
 - 施工设备进场报验单1.doc
 - 施工质量三检合格证.doc
 - 数列专题1递推公式求通项公式(教案).doc
 - 施工质量万泰力量潍坊万泰装饰2014夏季工地大巡检潍坊站.doc
 
- 政府职能转变如何提升公众对政府的信任——基于公共服务参与和满意度的分析.pdf
 - 蜜瓜籽不同溶剂提取物活性成分及抗氧化能力分析.pdf
 - 释放经济发展活力 巩固增长回升势头——2023年第一季度中国宏观经济形势分析.pdf
 - 开放式创新与知识产权风险——“开放悖论”情境下的互惠性控制分析.pdf
 - 化学发光法超高值样本自动稀释检测的质量风险分析与防控策略.pdf
 - 黄精多糖的结构分析及抗炎活性研究进展.pdf
 - 安康医院公安强制隔离戒毒职能模式下存在的问题分析.pdf
 - 不同武夷名丛鲜叶茶多糖组成分析及体外抗氧化活性比较研究.pdf
 - 社会信任、环境问题关注与居民环境支付意愿——基于CGSS2021数据的分析.pdf
 - 可持续航空燃料现状分析及前景展望.pdf
 
原创力文档
                        

文档评论(0)