演算法 遞迴演算法

2021-08-09 03:08:25 字數 818 閱讀 3155

遞迴演算法的概念,就是通過不斷地呼叫自身,最終達到解決問題的目的。

遞迴有兩個點需要注意:

1. 要不斷的呼叫自身;

2. 這個遞迴要有出口,不能成為死迴圈;

看下面的例子。

很多介紹遞迴演算法的,都會用遞迴來做乙個題目:計算乙個數的階層。

例如:計算5的階層,!5 = 5 x 4 x 3 x 2 x 1

用遞迴來實現:

public class test

public static int recursively(int num)

else

}}

在recursively()方法中,我們可以看到else的**塊,不斷的窮舉所有情況,不斷的遞迴下去。

num = 3

3*(num-1)

3*(2*(num-1))

3*(2*(1))

最後把結果一層一層return。需要知道的是,用遞迴解決階乘問題,效率實在是太低了。

斐波那契數列是這樣的,第乙個數是1,第二個數是1,從第三個數開始都是前兩個數的合。

1 1 2 3 5 8 11 19····

用遞迴實現:

public class test

public static int fibonacci(int num)

else

}}

記住遞迴的概念,遞迴就是不斷的呼叫自身,直到條件滿足的時候,就開始一層一層反饋結果,以達到解決問題的目的。

2017/10/9 16:30:37 @author:雲都小生

遞迴演算法經典例項 演算法 遞迴演算法

遞迴現象 老和尚講故事 自己呼叫自己 兩面鏡子互相映像 兩者相互呼叫 演算法思想 把規模大的問題轉化為規模小的相似的子問題來解決。在函式實現時,因為解決大問題的方法和解決小問題的方法往往是同乙個方法,所以就產生了函式自己呼叫自己的情況。遞迴函式 內部操作直接或間接地呼叫了自己的函式。遞迴函式兩大要素...

PHP演算法 遞迴演算法

遞迴函式在日常專案中有很廣泛的用途,例如寫樹結構 遍歷目錄等,今天我們用乙個簡單的遞迴demo來求斐波那契數列,並用 釋它執行的過程。0 1 1 2 3 5 8 13 21 34 function demo n elseif n 1 else return number echo demo 4 輸出...

python 演算法 遞迴演算法

在計算機中,程式呼叫自身的程式設計技巧我們稱之為遞迴演算法。那麼再通俗一點來講就是 在某個python檔案中,有乙個函式,這個函式可以在自己的函式體內根據條件,自己呼叫自己的函式,那麼這樣自身呼叫自身的過程或者說行為,我們稱之為遞迴。1 假設,有乙個直線型的迷宮 只有一條路,不能拐彎 迷宮中有乙份藏...