如果我有一个具有高范围值的大数组,这会更快,快速排序或合并排序?
首先我要说两者都是同一时间,因为两者都有最好的情况O(n * log(n),并且两种排序算法都不应该受到数组规范的负面影响。
但是因为快速排序非常依赖于枢轴,所以你可能想要认为合并更好
答案 0 :(得分:0)
从理论的角度来看,应该没有太大区别:
O(n log n)
,但在最坏的情况下,它可能最多为O(n²)
。O(n log n)
我知道我的一位教授和他的工作组正在使用mergesort对大量数据(> 100 GB)进行排序。他说可以修改mergesort以减少硬盘上的读/写操作次数。因为它们与RAM上的读/写操作相比非常慢,所以它们大大减慢了算法的速度。