斐波那契數列遞迴演算法的優化

2021-10-07 16:34:22 字數 609 閱讀 5967

public

class

fibonacci

//未優化的

private

static

intfd1

(int n)

int a =

fd1( n -1)

+fd1

( n -2)

;return n;

}//優化後的

private

static

longfd(

int n)

// 檢查陣列中有沒有計算好的結果,如果有,直接返回結果,如果沒有進行計算,並存入陣列

// 1.1 如果有,直接返回結果

if(cach[n]!=0

)// 1.2 如果沒有, 進行計算,並存入陣列

long x =

fd( n -1)

+fd( n -2)

; cach[n]

= x;

return x;}}

//執行結果

12586269025

0//優化後執行時間的毫秒值

35868

//未優化執行時間的毫秒值

遞迴演算法斐波那契數列

有一對兔子,從出生後第3個月起,每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子。假如兔子都不死,求第n個月兔子對數 關於斐波那契數列的兔子繁殖問題其實如下 實際月份 123 4567 8幼仔對數 101 1235 8成兔對數 011 2358 13總體對數 112 35813 21幼仔對...

斐波那契數列 遞迴和遞迴優化

斐波那契數列 經典數學問題之一 斐波那契數列,又稱 分割數列,指的是這樣乙個數列 1 1 2 3 5 8 13 21 想必看到這個數列大家很容易的就推算出來後面好幾項的值,那麼到底有什麼規律,簡單說,就是前兩項的和是第三項的值,也許你會想到的是迭代,也學你想到的是遞迴。簡單分析一下遞迴 int fi...

斐波那契數列 遞迴和遞迴優化

斐波那契數列,即兔子問題 演算法筆試題可能會出現 function fun n return fun n 1 fun n 2 效能問題 1,自身巢狀太深,可能會引起堆疊溢位 堆疊溢位 函式呼叫會使用棧來儲存臨時變數。每呼叫乙個函式,都會將臨時變數封裝為棧幀壓入記憶體棧,等函式執行完成返回時,才出棧。...