您将使用什么排序算法对大型,几乎排序的列表进行排序

时间:2012-09-02 18:33:32

标签: sorting computer-science

假设你有一个几乎排序的30亿整数数组 什么排序算法更合适(从“经典”算法中)? 如果列表是完全随机的怎么样?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

根据“简明算法”的作者,他们对不同用法的分类方法进行了比较,您的标准将偏向于InsertionSort。见;

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