正在学习算法,但在理解 MergeSort 中两个递归调用的具体构成时遇到了一些困难。感谢帮助。谢谢。
最佳答案
令数组的大小为N。基本上把数组分成两部分,从 1 到 N/2 和 N/2 + 1 到 N。我们分别称这些部分为 L 和 R。现在,如果我们可以对 L 进行排序 和 R 分开我们可以将它们合并以获得最终结果。现在你如何对 L 和 R 进行排序 ,再次应用相同的程序。因此有两个递归部分,一个递归排序 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/