【问题标题】:Quicksort vs Mergesort on big arrray with a high range of values具有高值范围的大数组上的快速排序和合并排序
【发布时间】:2015-04-06 16:39:52
【问题描述】:

如果我有一个包含大量值的大数组,快速排序或合并排序哪个更快?

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

但由于快速排序非常依赖于枢轴,您可能会认为合并更好

【问题讨论】:

标签: big-o quicksort mergesort


【解决方案1】:

从理论上看,应该没有太大区别:

  • 对于枢轴元素的随机选择,快速排序的预期复杂度为O(n log n),但在最坏的情况下,它可能高达O(n²)
  • mergesort 的固定复杂度为O(n log n)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2010-10-04
    • 2012-08-19
    • 1970-01-01
    • 2015-06-28
    相关资源
    最近更新 更多