首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归伪码的时间复杂度

递归伪码的时间复杂度
EN

Stack Overflow用户
提问于 2013-03-02 11:43:19
回答 3查看 195关注 0票数 0

伪代码的时间复杂度函数是多少?

代码语言:javascript
复制
int what(int k){
   if(k==0 || k==1) 
      return k;
   else 
      return what(k-1)*what(k-2);
}
EN

回答 3

Stack Overflow用户

发布于 2013-03-02 12:58:34

虽然调用的数量随着k的增加以黄金比率(渐近地)增加,但它不是Fibonacci序列。对于从0开始的n,对what()的调用次数是: 1,1,3,5,9,15。还有,函数what(k) is k:-> Fib(k)。

所有这些都清楚了,复杂度仍然是O(Fib(n)),如前所述。

票数 2
EN

Stack Overflow用户

发布于 2013-03-02 11:55:06

该函数不计算Fibonacci序列,但调用次数是Fibonacci序列。

由于该函数在内部不做任何工作,因此时间复杂度与调用次数相同。

所以它就是O(fib N)

票数 0
EN

Stack Overflow用户

发布于 2013-03-02 16:20:21

我认为这个代码的时间复杂度是O(n!),因为调用的数量乘以每个k的增量(这是非常非常糟糕的)。

(笑话)但是我有个好消息!这段代码可以简化为O(1),因为它总是返回0!

代码语言:javascript
复制
int what(int k) { return 0; }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15170436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档