Quicksort vs Mergesort在大阵列上具有很高的价值

时间:2015-04-06 16:39:52

标签: big-o quicksort mergesort

如果我有一个具有高范围值的大数组,这会更快,快速排序或合并排序?

首先我要说两者都是同一时间,因为两者都有最好的情况O(n * log(n),并且两种排序算法都不应该受到数组规范的负面影响。

但是因为快速排序非常依赖于枢轴,所以你可能想要认为合并更好

1 个答案:

答案 0 :(得分:0)

从理论的角度来看,应该没有太大区别:

  • quicksort对于随机选择pivot元素的预期复杂度为O(n log n),但在最坏的情况下,它可能最多为O(n²)
  • mergesort具有固定的复杂度O(n log n)

我知道我的一位教授和他的工作组正在使用mergesort对大量数据(> 100 GB)进行排序。他说可以修改mergesort以减少硬盘上的读/写操作次数。因为它们与RAM上的读/写操作相比非常慢,所以它们大大减慢了算法的速度。