Ben*_*oît 110
请参阅维基百科上的Quicksort:
通常,快速排序在实践中明显快于其他Θ(nlogn)算法,因为其内循环可以在大多数架构上有效实现,并且在大多数现实世界数据中,可以进行设计选择,从而最小化需要二次方的概率时间.
请注意,非常低的内存要求也是一大优点.
小智 72
当数据存储在内存中时,快速排序通常比合并排序更快.但是,当数据集很大并且存储在外部设备(如硬盘驱动器)上时,合并排序在速度方面是明显的赢家.它最大限度地减少了外部驱动器的昂贵读取,同时也很适合并行计算.
Bra*_*ugh 11
虽然快速排序通常是比合并排序更好的选择,但合并排序肯定是更好的选择.最明显的时间是,你的算法运行速度比O(n ^ 2)更重要.Quicksort通常比这更快,但是考虑到理论上最差的输入,它可以在O(n ^ 2)中运行,这比最差的可能合并排序更糟糕.
Quicksort也比mergesort更复杂,特别是如果你想编写一个非常可靠的实现,所以如果你的目标是简单性和可维护性,合并排序成为一个很有前途的替代方案,性能损失很小.
bra*_*boy 11
我个人想亲自测试快速排序和合并排序之间的区别,并查看1,000,000个元素的样本的运行时间.
快速排序能够在156毫秒内完成,而 Merge排序在247毫秒内完成相同的操作
然而,快速排序数据是随机的,如果数据是随机的,则快速排序表现良好,而不是合并排序的情况,即合并排序在数据排序与否时无关地执行.但是合并排序需要一个完整的额外空间,而快速排序则不是它的就地排序
我已经为他们编写了全面的工作计划,也将为说明图片.
| 归档时间: |
|
| 查看次数: |
227936 次 |
| 最近记录: |