时间复杂度为O(2 ^ N)。如何得出此代码的空间复杂度?
int f(int n){
if(n <= 1){
return 1;
}
return f(n-1) + f(n-1);
}
答案 0 :(得分:0)
空间复杂度是算法相对于输入大小占用的总空间。空间复杂度包括辅助空间和输入所使用的空间。
基本上,代码段是递归代码 输入n递归调用n-1
值3的调用示例:
f(3) f(2)+ f(2) f(1)+ f(1)[对于一个f(2),像另外两个一样明智]
执行顺序就像遍历DFS。
由于递归,程序将重用之前使用的相同程序空间。
树的最大深度将导致空间复杂性
O(N)-其中N是输入数字
对于工作程序的递归使用Stack Memory