Time complexity 这个给定代码段的空间复杂度是多少?

Time complexity 这个给定代码段的空间复杂度是多少?,time-complexity,space-complexity,Time Complexity,Space Complexity,时间复杂度为O(2^N)。如何推导此代码的空间复杂度 int f(int n){ if(n <= 1){ return 1; } return f(n-1) + f(n-1); } intf(intn){ 如果(n算法的空间复杂度是算法相对于输入大小占用的总空间。空间复杂度包括辅助空间和输入使用的空间。 基本上,代码段是一个递归代码 对于输入n,它递归地调用n-1 调用值3的示例: f(3) f(2)+f(2) f(1)+f(1)[对于一个f(

时间复杂度为O(2^N)。如何推导此代码的空间复杂度

int f(int n){ 
   if(n <= 1){
      return 1;    
   }
   return f(n-1) + f(n-1);
}

intf(intn){

如果(n算法的空间复杂度是算法相对于输入大小占用的总空间。空间复杂度包括辅助空间和输入使用的空间。

基本上,代码段是一个递归代码 对于输入n,它递归地调用n-1

调用值3的示例:

f(3) f(2)+f(2) f(1)+f(1)[对于一个f(2),就像其他两个一样]

执行的顺序将类似于遍历

由于递归,程序将重用以前使用的相同程序空间

树的最大深度将导致空间复杂性

O(N)-其中N是输入编号


对于程序使用的递归,您认为空间复杂性是什么?为什么?我没有得到答案,这就是为什么我问这个问题,但您至少可以进行一些推理?例如,您认为什么会消耗内存?为什么?