performance - MergeSort 中的两个递归调用是什么?

标签 performance algorithm mergesort

正在学习算法,但在理解 MergeSort 中两个递归调用的具体构成时遇到了一些困难。感谢帮助。谢谢。

最佳答案

令数组的大小为N。基本上把数组分成两部分,从 1 到 N/2N/2 + 1N。我们分别称这些部分为 LR。现在,如果我们可以对 L 进行排序 和 R 分开我们可以将它们合并以获得最终结果。现在你如何对 LR 进行排序 ,再次应用相同的程序。因此有两个递归部分,一个递归排序 L 和 oe 两个递归排序 R 之后它们被合并。伪代码

      merge_sort ( 1 , N )
         merge_sort(1,N/2) /* L */
         merger_sort(N/2 + 1,N) /* R */
         merge both these sorted parts 

关于performance - MergeSort 中的两个递归调用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27746489/

相关文章:

java - 没有明确答案 : Which Java Map is the cheapest?

c++ - C++ 中一组集合的高效集合交集

scala 参数化合并排序 - 令人困惑的错误消息

algorithm - 证明合并排序输出输入的排列

javascript - 根据需要加载多个 JavaScript 与一次加载一个大文件

performance - OR 语句是否比多个 IF 语句更快?

java - 性能问题 : Fastest way to convert hexadecimal char to its number value in Java?

algorithm - 粗细算法

algorithm - 棘手的加密算法设计

c++ - 合并排序不能正确处理某些数字列表