在函式的定義中使用函式自身的方法。
特點:
遞迴就是在過程或函式裡呼叫自身。
在使用遞迴策略時,必須有乙個明確的遞迴結束條件,稱為遞迴出口。
遞迴演算法解題通常顯得很簡潔,但解題的執行效率較低。
在遞迴呼叫的過程當中系統為每一層的返回點、區域性量等開闢了棧來儲存。遞迴次數過多容易造成棧溢位等。所以一般不提倡用遞迴演算法設計程式。在實際程式設計中尤其要注意棧溢位問題。
遞迴演算法的使用:使用遞迴演算法可以將乙個負責的問題使用較短的**將問題解決出來,但是執行的效率比較低。
斐波那契數列就是如下的數列:
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 ...