递归伪代码的时间复杂度

时间:2013-03-02 03:43:19

标签: performance algorithm time-complexity

伪代码的时间复杂度函数是什么?

int what(int k){
   if(k==0 || k==1) 
      return k;
   else 
      return what(k-1)*what(k-2);
}

3 个答案:

答案 0 :(得分:2)

当k增加时,黄金比率的调用次数增加(渐近),而不是斐波那契序列。从0开始的n的调用次数是: 同样,函数k(k)是k: - > 1。 FIB(k)的

如前所述,所有澄清的复杂性仍为O(Fib(n))。

答案 1 :(得分:0)

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

由于该功能在内部没有任何工作要做,因此时间复杂度与呼叫次数相同。

所以它是O(fib N)

答案 2 :(得分:0)

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

(笑话)但我有好消息!此代码可简化为 O(1),因为它始终返回0!

int what(int k) { return 0; }