首頁 > 每日程式設計 > PHP知識 > PHP遞歸排序怎麼實現的

PHP遞歸排序怎麼實現的

藏色散人
發布: 2018-12-14 09:51:02
原創
6311 人瀏覽過


本篇文章主要介紹給大家PHP遞迴排序也是PHP遞迴演算法的三種實作方法。

PHP遞歸排序怎麼實現的

遞歸演算法對於任何一個程式設計人員來說,應該都不陌生。因為遞歸這個概念,無論是在PHP語言或Java等其他程式語言中,都是大多數演算法的靈魂。

對於PHP新手來說,遞歸演算法的實作原理可能不容易理解。但是只要你了解掌握了這個演算法原理,就可以靈活運用遞歸演算法實現程式設計中的多種功能例如實現無限分類等。遞歸也是入門者最需要掌握的基礎演算法技巧。

那究竟什麼是遞迴呢?

遞迴其實就是函數本身直接或間接地呼叫自身的一種程式方法,也可以理解為有反覆執行過程的一種方法,這個就與循環非常相似,但是遞迴呼叫的函數中必須要有終止條件,也就是一定要有跳脫重複執行過程的條件,否則就會成為死迴圈。

下面我們就透過具體程式碼範例為大家介紹PHP遞歸演算法也是PHP遞迴排序的三種實作方法。

方法一:靜態變數

<?php
function call(){
    static $i=1;
    echo  $i.&#39;<br>&#39;;
    $i++;
    if ($i<=10){
        call();
    }
}
call();
登入後複製

這個方法我們主要利用static定義靜態變數來實作遞歸排序。如上我們定義了一個call方法和靜態變數$i,如果我們不給$i變數加入判斷,而是直接運行,顯然就會出現死迴圈。

所以這裡我們加入了一個if條件判斷語句。最後循環呼叫自身方法,結果如下圖所示:

PHP遞歸排序怎麼實現的

如圖所示就是利用靜態變數實作遞歸排序的效果。

方法二:全域變數

$i=1;
function call(){
    global $i;
    echo $i;
    $i++;
    if($i<=10){
        call();
    }
}
call();
登入後複製

此種方法主要利用global定義全域變數來實作PHP遞歸排序。如上我們先定義了一個$i變量,再創建一個call方法,在這個方法中,定義$i為全局變量,那麼最後循環調用自身方法結果和上述結果是一樣的:

12345678910
登入後複製

方法三:引用傳參

function call(&$i=1){
  echo $i.&#39;<br>&#39;;
  $i++;
  if($i<=10){
       call($i);
   }
}
call();
登入後複製

大家在使用這個方法時,可以簡單了解下PHP中引用傳遞的概念:可以將一個變數透過引用傳遞給函數,這樣函數就可以修改其參數的值。利用引用傳參來實現PHP遞歸排序是最基礎簡單的一種演算法了。

註:在呼叫自身方法時,一定要將參數傳遞進去,否則就會報錯。

以上就是關於PHP遞歸演算法即遞歸排序的三種實作方法。希望對需要的朋友有幫助!

想要了解更多PHP知識,可以關注PHP中文網PHP影片教學,歡迎大家參考學習!


以上是PHP遞歸排序怎麼實現的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板