日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Fibonacci数列时间复杂度之美妙

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

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

?

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

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

?

老師是這樣求的:

?

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

但其實(shí)并不是這樣!

嚴(yán)謹(jǐn)上說,并不能證明出點(diǎn)的數(shù)目是x^n層面的,我們也可以認(rèn)為點(diǎn)的數(shù)目為nlogn級別,對吧?

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

?

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

fib(d)終究是由若干個f(0)和f(1)組成,設(shè)由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)的總操作步數(shù)為fib(n-2)+fib(n-1)=fib(n)=,

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

?

轉(zhuǎn)載于:https://www.cnblogs.com/cmyg/p/8653435.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。