如何计算时间和内存的复杂性

时间:2015-07-25 12:24:00

标签: math big-o

我有以下代码

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或者我无法计算的递归函数的计算

有人可以帮助我吗?

1 个答案:

答案 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)