您的位置:首页 > 其它

几种排序比较

2016-01-11 23:08 232 查看
从书本上看的,这里记录下。

1.时间复杂度(平均时间复杂度)

插入排序:O(N2);

希尔排序:O(N2) Hibbard增量的希尔排序平均:O(N7/6)

堆排序:O(NlogN) (每次需要构建堆,比较次数较多;为了减少开销,每次删除的数据放到头(从小到大排)或尾(从大到小排)

归并排序:O(NlogN) (每次需要拷贝一次数组,所以不常用,费时还占内存;但在海量数据,即文件中的数据排序,都是基于该排序的思想)

快速排序:O(NlogN) (快速排序可以优化,主要是如何分组,即所谓的“枢纽元”选取,可以取left,right,middle中间值)

桶排序:O(N) (这个消耗额外内存较多,可能适合某些特出场景)

2.选择哪个合适

按照书本上的数据统计(不讨论桶排序),20以内的元素比较还不如使用插入排序,代码易懂,耗时与快排之类的相同;

1000个元素以内,优化的希尔排序可以和优化的快速排序匹配;100个元素以内,希尔排序更快。

更多的元素,最好就是用快速排序了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: