我有以下2种情况下时间和空间复杂
块引用
案例我的时间和空间复杂度有关的一个疑问:
Recurion:阶乘计算。
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和空间复杂度是恒定的。 这总是让我感到困惑。
的递归解决方案还将为O的时间复杂度(N ),假设乘法需要一定的时间,则重复是T(N)= T(N-1)+ O(1)。显然这意味着复杂度是O(N)的时间。 – Aravind