我有以下代码
var stats = fs.statSync(path);
我想计算这段代码的时间和内存的复杂性
我的代码包含一个常量检查public int X(int n)
{
if (n == 0)
return 0;
if (n == 1)
return 1;
else
return (X(n- 1) + X(n- 2));
}
所以这将花费一个恒定的时间假设if (n == 0) return 0;
所以我们有c
或者我无法计算的递归函数的计算
有人可以帮助我吗?
答案 0 :(得分:1)
要计算X(n)
的值,您需要计算X(n-1)
和X(n-2)
So T(n) = T(n-1) + T(n-2);
T(0) = 1
T(1) = 1
是指数O(2^n)
如果您想要详细证明O(2^n)
的方式,请查看here。
空间复杂性是线性的。
(准确地说,如果你考虑递归的堆栈空间,它是O(n)
)