我只是想了解递归在这个例子中是如何工作的,并且如果有人能够为我分解这个,我将不胜感激。我有以下的算法基本上返回最大数组中的元素:分而治之递归
int MaximumElement(int array[], int index, int n)
{
int maxval1, maxval2;
if (n==1) return array[index];
maxval1 = MaximumElement(array, index, n/2);
maxval2 = MaximumElement(array, index+(n/2), n-(n/2));
if (maxval1 > maxval2)
return maxval1;
else
return maxval2;
}
我无法理解的递归调用在这里是如何工作的。第二次调用时,第一次递归调用是否总是被执行?我真的很感激,如果有人可以请向我解释这一点。非常感谢!嵌入式
这是我假设的C++吗? –
没有特定的编程语言。我只是想了解这个方法/函数/伪代码背后的概念。我有一个Java背景。 –
在Java中,你可能不会使用'int n'参数(但你可以)。 –