演算法分析與設計 遞迴演算法(斐波那契數列)

2021-09-27 07:57:39 字數 619 閱讀 8409

在函式的定義中使用函式自身的方法。

特點:

遞迴就是在過程或函式裡呼叫自身。

在使用遞迴策略時,必須有乙個明確的遞迴結束條件,稱為遞迴出口。

遞迴演算法解題通常顯得很簡潔,但解題的執行效率較低。

在遞迴呼叫的過程當中系統為每一層的返回點、區域性量等開闢了棧來儲存。遞迴次數過多容易造成棧溢位等。所以一般不提倡用遞迴演算法設計程式。在實際程式設計中尤其要注意棧溢位問題。

遞迴演算法的使用:使用遞迴演算法可以將乙個負責的問題使用較短的**將問題解決出來,但是執行的效率比較低。

斐波那契數列就是如下的數列:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …,總之,就是第n(n > 2)個數等於第(n - 1)個數和(n - 2)個數的和。

實現遞迴的**為:

public static integer fibonacci(int i) 

if (i == 1)

if (i < 0)

return fibonacci(i - 1) + fibonacci(i - 2);

}

遞迴演算法斐波那契數列

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

斐波那契演算法

其思想與折半查詢 插值查詢沒有多大區別,本質上只是分割點的選擇不同。斐波那契查詢需要構造斐波那契數列,該數列的作用就是提供分割點 好多演算法書都沒有介紹清楚啊!參閱折半查詢 插值查詢以及斐波那契查詢 1 演算法首先找到構造乙個查詢表,即在原來的陣列上新增元素,使得該查詢表 陣列 的長度為某個斐波那契...

斐波那契數列的遞迴演算法與非遞迴演算法

一 斐波那契數列 由於斐波納挈數列是以兔子的繁殖引入的,因此也叫 兔子數列 它指的是這樣乙個數列 0,1,1,2,3,5,8,13.從這組數可以很明顯看出這樣乙個規律 從第三個數開始,後邊乙個數一定是在其之前兩個數的和。在數學上,斐波納挈數列可以以這樣的公式表示 f 0 0 f 1 1 f n f ...