【发布时间】:2015-04-06 16:39:52
【问题描述】:
如果我有一个包含大量值的大数组,快速排序或合并排序哪个更快?
首先我会说两者都需要相同的时间,因为两者都有最佳情况 O(n*log(n) 并且两种排序算法都不应该受到数组规范的负面影响。
但由于快速排序非常依赖于枢轴,您可能会认为合并更好
【问题讨论】:
如果我有一个包含大量值的大数组,快速排序或合并排序哪个更快?
首先我会说两者都需要相同的时间,因为两者都有最佳情况 O(n*log(n) 并且两种排序算法都不应该受到数组规范的负面影响。
但由于快速排序非常依赖于枢轴,您可能会认为合并更好
【问题讨论】:
从理论上看,应该没有太大区别:
O(n log n),但在最坏的情况下,它可能高达O(n²)。O(n log n)
我知道我的一位教授和他的工作组正在使用归并排序对大量数据(> 100 GB)进行排序。他说可以修改合并排序以减少硬盘上的读/写操作次数。由于与 RAM 上的读/写操作相比,它们非常慢,因此它们会大大降低算法的速度。
【讨论】: