在以下 2 个案例中,我对时间和空间复杂度有疑问
块引用
案例一:
递归:阶乘计算。
int fact(int n)
{
if(n==0)
return 1;
else
return (n*fact(n-1));
}
这里时间复杂度如何变成 2*n 和空间复杂度与 n 成正比。
和
案例二:
迭代:-
int fact(int n)
{
int i, result = 1;
if(n==0)
result = 1;
else
{
for(1=1;i<=n;i++)
result*=i;
}
return (result);
}
时间复杂度与 n 成正比,空间复杂度是常数。这总是让我感到困惑。