斐波那契數列的三種解法及時間複雜度
阿新 • • 發佈:2018-12-14
斐波那契數列: f(n)=f(n-1)+f(n-2)(n>2) f(0)=1;f(1)=1; 即有名的兔子繁衍問題 在本篇文章我將會給出三種解法 遞迴
(1)遞迴:函式自己呼叫自己
(2)遞迴的"缺陷":遞迴到一定程度,會發生"棧溢位"
(3)遞迴的"時間複雜度":遞迴總次數*每次遞迴的次數
(4)遞迴的"空間複雜度":遞迴的深度*每次遞迴空間的大小(注意:"每次遞迴空間的大小"是個常數,可以基本忽略不計)
遞迴的"深度":樹的高度(遞迴的過程是一個"二叉樹")
-
1.遞迴實現斐波那契數列
#include<stdio.h>
-
執行結果:
此種方法的缺陷:重複計算的次數太多,效率低 例如:在下圖中,F(3
-
執行結果: