递归算法的复杂性

编程入门 行业动态 更新时间:2024-10-12 20:22:50
本文介绍了递归算法的复杂性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个递归算法,如:

I have a recursive algorithm like :

int alg(int n) { if (n == 0) return 2; for (int i = 0; i<= n-1; ++i) alg(i); }

显然,ñ== 0 情况下是Θ(1)。但是我无法理解它到底是如何工作的。我的意思是它必须是这样的:

Obviously the n == 0 case is Θ(1). However I am having trouble understanding how it really works. I mean it must be something like :

T(n) = T(0) + T(1) + ... + T(n-1).

然后,我们必须给 T(1),T(2),...,T(N-1)= XT(0)。我可以把它理解为去N = 0和n = 1的方式,但更大ñ它出了问题。

And then we have to give T(1), T(2), .., T(n-1) = xT(0). I can understand the way it goes for n=0 and n=1, but for bigger n it goes wrong.

推荐答案

您可以观察到:

T(n) = T(0) + T(1) + ... + T(n-2) + T(n-1) T(n - 1) = T(0) + T(1) + ... + T(n-2)

因此​​

T(n) = 2 * T(n-1)

在这一点上,我们可以得出结论,复杂度为O(2 N )。其实,这是Θ(2 N )。

At this point, we can conclude that the complexity is O(2n). Actually, it is Θ(2n).

更多推荐

递归算法的复杂性

本文发布于:2023-11-29 22:34:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1647821.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:递归   复杂性   算法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!