伪代码的时间复杂度函数是什么?
int what(int k){
if(k==0 || k==1)
return k;
else
return what(k-1)*what(k-2);
}
答案 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; }