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,自身巢狀太深,可能會引起堆疊溢位 堆疊溢位 函式呼叫會使用棧來儲存臨時變數。每呼叫乙個函式,都會將臨時變數封裝為棧幀壓入記憶體棧,等函式執行完成返回時,才出棧。...