日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Fibonacci数列时间复杂度之美妙

發布時間:2025/7/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fibonacci数列时间复杂度之美妙 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Fibonacci數列:  fib(0)=1  fib(1)=1  fib(n)=fib(n-1)+fib(n-2)

?

上課老師出了一道題,求下列函數的時間復雜度:

int fib(int d) {if (d==0)return 0;if (d==1)return 1;return fib(d-1)+fib(d-2); }

?

老師是這樣求的:

?

點的數目大約為滿(完全)二叉樹結點數目的一半,所以時間復雜度為O(2^n)。

但其實并不是這樣!

嚴謹上說,并不能證明出點的數目是x^n層面的,我們也可以認為點的數目為nlogn級別,對吧?

從圖上看,樹的最低高度為n/2+1,只能說明點的數目至少為2^(n/2+1)而已。。。

?

fib(d)的計算步數為fib(d-1)的計算步數再加上fib(d-2)的計算步數,

fib(d)終究是由若干個f(0)和f(1)組成,設由x個f(0)和y個f(1)組成,表示成(x,y),則:

fib(0): (1,0)  fib(1):(0,1)  fib(2):(1,1)  fib(3):(1,2)  ……  fib(n):(fib(n-2),fib(n-1))

fib(n)的總操作步數為fib(n-2)+fib(n-1)=fib(n)=,

而(1-sqrt(5))/2相比(1+sqrt(5))/2較小,可以忽略不計,所有其時間復雜度為1 / sqrt(5) * [(1+sqrt(5))/2]^n。

?

轉載于:https://www.cnblogs.com/cmyg/p/8653435.html

總結

以上是生活随笔為你收集整理的Fibonacci数列时间复杂度之美妙的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。