gpt4 book ai didi

c++ - 递归的 Theta 运行时间

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:36 25 4
gpt4 key购买 nike

如何计算此给定代码的 Theta 运行时间:

void f(int n)
{
for (int i=3; i<n; ++i)
for (int j=0; j<i; ++j)
f(n-1);
}

到目前为止我得到了这个,但我不知道它是否正确或如何将它引入 Theta 表示法。

f(n) = n^2 * f(n-1)
f(n) = n^2 * (n-1)^2 * f(n-2)
f(n) = n^2 * (n-1)^2 * (n-2)^2 * f(n-3)
...

最佳答案

由于每个嵌套 for 循环的复杂度为 O(N^2),并且每次在另一个函数中调用一个函数时,复杂度都会成倍增加,最终得到 O((N!)^2),其中 N也是你递归的次数。这当然是因为 N! = N*(N-1)*(N-2)*...*(N-N+1),所有用于创建阶乘的值均已平方。

关于c++ - 递归的 Theta 运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10931441/

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