为什么我们不能在合并排序中将数组分成5次?

时间:2012-03-13 15:57:02

标签: sorting merge

在合并排序中,我们总是将数组分成两次。为什么我们不把它分成两次?堆排序和合并排序哪个更好?我

1 个答案:

答案 0 :(得分:4)

为什么不尝试看看。编写一个合并排序,分为5个而不是2个,并测试其性能。最好的学习方法是尝试。

它对计算复杂性没有影响,因此改进最多是一个常数因素。您将合并传递的数量减少了1g(5)≈2.3,但合并步骤现在需要优先级队列,这比两阶段合并使用的单次比较要快2.3倍。

分为2个以上的部分称为polyphase merge sort,当您需要最小化合并传递次数时使用它。