Time complexity 这个给定代码段的空间复杂度是多少?
时间复杂度为O(2^N)。如何推导此代码的空间复杂度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(
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是输入编号
对于程序使用的递归,您认为空间复杂性是什么?为什么?我没有得到答案,这就是为什么我问这个问题,但您至少可以进行一些推理?例如,您认为什么会消耗内存?为什么?