以下伪码的计算复杂度是多少?
integer recursive (integer n) {
if (n == 1)
return (1);
else
return (recursive (n-1) + recursive (n-1));
}
在现实世界中,调用将得到优化并产生线性复杂性,但是在计算大o的内存模型下,复杂度是多少?2^n。
发布于 2013-11-27 09:44:27
你的复杂性将是
为什么会这样呢?简单的数学归纳法证明:
= 2,所以这是正确的
N=K
是正确的,也就是说,对于N=K
,它将是
N=K+1
。recursive
函数将递归地为N=K
调用两次:recursive(K+1) = recursive(K) + recursive(K)
,因为它遵循代码。这就是:。所以,对于N=K+1
我们有
步骤。
所以我们已经证明了N
的复杂性
在一般情况下(从数学归纳的定义)。
https://stackoverflow.com/questions/20238439
复制相似问题