1. 程式人生 > >遞歸例子大全(持續更新)

遞歸例子大全(持續更新)

right n) left php代碼 空格 com 遠的 alt 兩個

前言

  遞歸這個鬼東西,明明知道他的意思,但每次都總不能理順它,一直懵懵懂懂,所以,我準備找一大堆例子去練熟理解。

  這裏準備的都是PHP代碼例子~

概念

  先說說遞歸的概念。

  什麽是遞歸,其實上過高中的估計都有了解過,簡單來說,遞歸就是調用自身。

  在數學與計算機科學中,遞歸(Recursion)是指在函數的定義中使用函數自身的方法。實際上,遞歸,顧名思義,其包含了兩個意思:遞 和 歸,這正是遞歸思想的精華所在。

  遞歸就是有去(遞去)有回(歸來),如下圖所示。“有去”是指:遞歸問題必須可以分解為若幹個規模較小,與原問題形式相同的子問題,這些子問題可以用相同的解題思路來解決,就像上面例子中的鑰匙可以打開後面所有門上的鎖一樣;“有回”是指 : 這些問題的演化過程是一個從大到小,由近及遠的過程,並且會有一個明確的終點(臨界點),一旦到達了這個臨界點,就不用再往更小、更遠的地方走下去。最後,從這個臨界點開始,原路返回到原點,原問題解決。

技術分享圖片

  遞歸三要素:

    1、明確遞歸終止條件;

    2、給出遞歸終止時的處理辦法;

     3、提取重復的邏輯,縮小問題規模。

  ··························································好了,廢話就不多少了,上例子熟悉····························································

例子

  

function test ($n){
    echo $n." ";
    if($n>0){
        test($n-1);
    }else{
        
echo ""; } echo $n." "; } test(2);

輸出:2 1 0 0 1 2

解析:

  遞去:

  執行test(2) n = 2; 輸出:2; n > 0 輸出:(空格)執行test(n – 1)

  執行test(1) n = 1; 輸出:1; n > 0 輸出:(空格)執行test(n – 1)

  執行test(0) n = 0; 輸出:0; n < 0 輸出:(空格)

  停止

  歸來:

  輸出:0

  輸出:1

  輸出:2

遞歸例子大全(持續更新)