77问答网
所有问题
求时间复杂度
int f(int n) { if( n == 1 || n == 2) return n; else return f(n - 1) + f(n - 2)+1; }
举报该问题
推荐答案 2020-11-30
和斐波那契数列的复杂度相同。
设 f(n) 需时间 T(n),由 f(n) = f(n-1) + f(n-2) + 1 得
T(n) = T(n-1) + T(n-2) + 1
T(n-1) 和 T(n-1) 为至少为 n 的一次方,所以常数1忽略不计。
T(n) = T(n-1) + T(n-2)
< T(n-1) + T(n-1) = 2T(n-1)
< 2*2T(n-2)
<(2^i)T(n-i)
<(2^(n-2))T(n-(n-2))=(2^(n-2))T(2)=2^(n-2)
所以时间复杂度为 2^n。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/pG3NWpIIYNNqvpNpGY.html
相似回答
大家正在搜
相关问题
求时间复杂度
如何计算时间复杂度
时间复杂度计算
程序中的时间复杂度是怎么计算的?
如何计算一个算法的时间复杂度
求时间复杂度
时间复杂度怎么计算
时间复杂度的计算。