php中的遞歸算法示例


  • 什么是遞歸

    所謂遞歸就是一種函數調用自身的機制。簡單來說就是在函數體內直接或間接自己調用自己,但需要設置自調用的條件,若滿足條件,則調用函數本身,若不滿足則終止本函數的自調用

 

  • PHP中遞歸的實現

      遞歸算法的實現方法是有多種的,如通過“靜態變量”、“全局變量”、“引用傳參”的方式

 

   使用靜態變量:

function call(){
    static $i = 0;
    echo $i . '';
    $i++;
    if($i<10){
        call();
    }
}

call();  //  輸出 0 1 2 3 4 5 6 7 8 9

 

        使用全局變量:

$i=1;

function call(){
    global $i;
    echo $i;
    $i++;
    if($i<=10){
        call();
    }
}

call();   // 輸出 1 2 3 4 5 6 7 8 9 10

 

    使用引用傳參:

function test($a=0,&$result=array()){
    $a++;
    if ($a<10){
        $result[]=$a;
        test($a,$result);
    }

    echo $a."<br>";
    return $result;
}

var_dump(test());  

// 依次輸出 10 9 8 7 6 5 4 3 2 1 
// test() 返回 array(1,2,3,4,5,6,7,8,10)

  

  • 總結

   遞歸需要滿足三個條件

      1、一個問題可以分解為幾個子問題的解。

      2、這個問題與分解之后的子問題,除了數據規模不同,求解思路完全一致。

      3、存在遞歸終止條件。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM