當前位置:首頁 » 操作系統 » 斐波那契數列的遞歸演算法

斐波那契數列的遞歸演算法

發布時間: 2024-05-04 14:34:55

⑴ [數據結構與演算法分析]斐波那契數列遞歸演算法時間復雜度為多少

longfab(longn)
{
if(n<2)return1;
returnfab(n-1)+fab(n-2);
}

簡單推斷一下,當n>2時,遞歸調用的次數call_fab(n) = 2*fab(n) - 1,再簡單證明一下。

用call_fab(n)代表遞歸調用的次數

n = 3時,調用fab(3),會遞歸調用fab(1)和fab(2),而fab(1)和fab(2)只需要調用一次,加上本身一次,一共調用3次,而fab(3) = 2,3 = 2 * 2 - 1,滿足推斷

n = 4時,fab(4) = fab(3) + fab(2),所以call_fab(4) = 1 + call_fab(3) + call_fab(2) = 5

fab(4) = 3,滿足5 = 3 * 2 - 1

同理n=5也可以簡單計算得出,這樣我有連續3個結果,作為歸納法證明的基礎

假設n = k(k >= 5)成立,即

fab(k) = fab(k-2) + fab(k - 1),有call_fab(k) = 2fab(k) - 1

那麼當n=k+1時,fab(k+1) = fab(k - 1) + fab(k),

call_fab(k+1) = 1 + call_fab(k - 1) + call_fab(k) = 1 + 2fab(k-1) - 1 + 2fab(k) - 1

= 2(fab(k-1) + fab(k)) - 1 = 2fab(k+1) - 1,歸納法得證。

所以,對於大於2的整數n,其斐波那契數列遞歸演算法的調用次數為2*n的斐波那契數列值 - 1,故答案是D,時間復雜度和該數列是一致的。

熱點內容
安卓手機設備連接在哪裡 發布:2024-05-18 14:08:28 瀏覽:819
路由器的密碼最多是多少位 發布:2024-05-18 13:58:18 瀏覽:419
掃描伺服器名稱如何填 發布:2024-05-18 13:36:29 瀏覽:114
芒果緩存的視頻看不了視頻怎麼下載不了 發布:2024-05-18 13:35:14 瀏覽:519
c語言發簡訊 發布:2024-05-18 13:23:08 瀏覽:833
vb資料庫程序 發布:2024-05-18 13:01:57 瀏覽:111
新建文件夾2免費手機 發布:2024-05-18 12:56:13 瀏覽:365
自己在家搭建伺服器有水冷散熱嗎 發布:2024-05-18 12:47:27 瀏覽:649
舊版的安卓手機怎麼使用微信 發布:2024-05-18 12:46:36 瀏覽:467
我的世界伺服器開多久 發布:2024-05-18 12:45:32 瀏覽:593