设M(n)是函数fct所做的乘法数。
//precondition: n>0
int fct (const int A[], int n) {
if (n==1)
return A[0]*A[0];
else return A[n-1] * fct(A,n-1) * A[n-1];
}
写入M(n)的递归关系,其中n是数组中元素的数量
求解递归关系,以n
得到M(n)将第2部分的结果表达式写成大O表示法
所以这是一个测验,我有答案键,但不太确定如何计算,M(n)= 2n-1与O(n)..我不知道这是如何确定的,可以有人解释?感谢
答案 0 :(得分:1)
让我们来看看每个电话的作用。每次通话,当n> 1,
因此,我们可以将重现写为
如果使用迭代方法,您会注意到这种模式:
现在你有了这个,你可以渐近地写成M(n)=Θ(n)。
希望这有帮助!