首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您会使用什么排序算法来对大的、几乎排序的列表进行排序

问您会使用什么排序算法来对大的、几乎排序的列表进行排序
EN

Stack Overflow用户
提问于 2012-09-03 02:33:32
回答 3查看 299关注 0票数 0

假设你有一个由30亿个整数组成的数组,这些整数几乎都是排序的。

哪种排序算法更合适(从“经典”算法中选择)?

如果列表是完全随机的呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-03 19:11:47

根据“算法简明”一书的作者,他们比较了不同用途的排序方法,你的标准更倾向于InsertionSort。请看;

http://my.safaribooksonline.com/book/software-engineering-and-development/algorithms/9780596516246/sorting-algorithms/criteria_for_choosing_a_sorting_algorit

票数 1
EN

Stack Overflow用户

发布于 2012-09-03 03:02:58

我会对两者都使用合并排序,因为这是标准unix sort()调用中使用的排序,而您没有提供任何会改变这一点的约束(比如最小时间或最小内存)。

票数 1
EN

Stack Overflow用户

发布于 2012-09-03 19:07:30

考虑使用插入排序,如果输入是(几乎)排序的,则需要线性时间。即使对输入进行了排序,快速排序和合并排序的时间复杂度也是O(n log n)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12238650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档