gpt4 book ai didi

c - 递归函数的空间复杂度(Time & Space)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:22 24 4
gpt4 key购买 nike

下面有递归函数,我没有计算时空复杂度。我查看了一些资源,但对我的理解还不够清楚。谁能用最简单的方式解释一下求解的方法,并回答问题?

顺便说一下,我试图解决时间复杂度,我发现 O(2^n)。是否正确?

int func(int n) { 
if (n < 3)
return 3;
else {
return func(n-3)*func(n-3);
}
}

最佳答案

是的,时间复杂度确实是O(2 ^ n)

时间复杂度的递推关系为:T(n) = 2 * T(n - 3)

将上述等式应用 k 次:T(n) = 2 * 2 * 2 ... k 次 * T(n - 3 * k) = 2 ^ k * T(n - 3k)

kn/3时,T(n) = 2 ^ k = 2 ^ (n/3) = O(2 ^ n)

一次只有一个函数在运行,堆栈深度最大可以是k。因此,空间复杂度为 n/3O(n)

关于c - 递归函数的空间复杂度(Time & Space),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53361837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com