演算法 棧模擬遞迴斐波那契數列

2021-10-06 21:27:13 字數 1813 閱讀 6686

時間複雜度: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...