時間複雜度:o(n)o(n)。
空間複雜度:o(1)o(1),僅僅使用了 current,prev1,prev2。
遞迴樹
時間複雜度:o(2^n)
這是計算斐波那契數最慢的方法。因為它需要指數的時間。
空間複雜度:o(n)o(n),在堆疊中我們需要與 n 成正比的空間大小。該堆疊跟蹤 fib(n) 的函式呼叫,隨著堆疊的不斷增長如果沒有足夠的記憶體則會導致 stackoverflowerror。
#
include
#include
using
namespace std;
intfab
(int num)
return
fab(num -1)
+fab
(num -2)
;}intfab_for
(int num)
int ans =0;
int min =0;
int max =1;
for(
int i =
2; i <= num; i++
)return ans;
}int
fab_stack
(int num)
std::stack<
int> stack;
stack.
push
(num)
;int ans =
0, data =0;
while
(!stack.
empty()
)else
}return ans;
}int
main
(int argc,
char
**ar**)
遞迴演算法斐波那契數列
有一對兔子,從出生後第3個月起,每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子。假如兔子都不死,求第n個月兔子對數 關於斐波那契數列的兔子繁殖問題其實如下 實際月份 123 4567 8幼仔對數 101 1235 8成兔對數 011 2358 13總體對數 112 35813 21幼仔對...
遞迴演算法前置 斐波那契數列
斐波那契數列,又稱 分割數列,指的是這樣乙個數列 0 1 1 2 3 5 8 13 21 在數學上,斐波納契數列以如下被以遞迴的方法定義 f0 0,f1 1,fn f n 1 f n 2 n 2,n n 在現代物理 準晶體結構 化學等領域,斐波納契數列都有直接的應用。學習遞迴演算法的時候一般都會了解...
python遞迴演算法 斐波那契數列
遞迴方法為 將問題一步步分解,直到得到可以解決的簡單問題。通常涉及直接或間接條用自身 例如計算列表 1,3,5,7,9,13 中各元素的和。else if n 1 a 0,1 for i in range n 2 執行n 2次迴圈,即向陣列a中新增n 2個斐波那契數字return a輸入 fibs1...