假设你有一个几乎排序的30亿整数数组 什么排序算法更合适(从“经典”算法中)? 如果列表是完全随机的怎么样?
答案 0 :(得分:1)
我会对两者使用合并排序,因为它是标准的unix sort()调用中使用的,并且你没有提供任何会改变它的约束(比如最小时间或最小内存)。
答案 1 :(得分:1)
考虑使用插入排序,如果输入(几乎)已排序,则需要线性时间。即使输入已排序,快速排序和合并排序的时间复杂度为O(n log n)。
答案 2 :(得分:1)
根据“简明算法”的作者,他们对不同用法的分类方法进行了比较,您的标准将偏向于InsertionSort。见;