次の2つのケースで、時間と空間の複雑さに関連する疑問があります
引用符
ケース I:
Recurion: 階乗計算。
int fact(int n)
{
if(n==0)
return 1;
else
return (n*fact(n-1));
}
ここで、なぜ時間の複雑さが 2*n になり、空間の複雑さが n に比例するのでしょうか。
と
ケース II:
反復:-
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 に比例し、空間の複雑さは一定です。これはいつも私を混乱させます。