亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PHP中使用遞歸實現一個快速排序算法

發布時間:2021-01-26 16:37:30 來源:億速云 閱讀:117 作者:Leah 欄目:開發技術

怎么在PHP中使用遞歸實現一個快速排序算法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

使用遞歸,則需要找到遞歸點和遞歸出口:

遞歸點:如果數組的元素大于1,就需要再進行分解,所以我們的遞歸點就是新構造的數組元素個數大于1

遞歸出口:我們什么時候不需要再對新數組不進行排序了呢?就是當數組元素個數變成1的時候,所以這就是我們的出口。

理解了原理,來看一下代碼實現~

<?php
//快速排序
//待排序數組
$arr=array(6,3,8,6,4,2,9,5,1);
//函數實現快速排序
function quick_sort($arr)
{
    //判斷參數是否是一個數組
    if(!is_array($arr)) return false;
    //遞歸出口:數組長度為1,直接返回數組
    $length=count($arr);
    if($length<=1) return $arr;
    //數組元素有多個,則定義兩個空數組
    $left=$right=array();
    //使用for循環進行遍歷,把第一個元素當做比較的對象
    for($i=1;$i<$length;$i++)
    {
      //判斷當前元素的大小
      if($arr[$i]<$arr[0]){
        $left[]=$arr[$i];
      }else{
        $right[]=$arr[$i];
      }
    }
    //遞歸調用
    $left=quick_sort($left);
    $right=quick_sort($right);
    //將所有的結果合并
    return array_merge($left,array($arr[0]),$right);
}
//調用
echo "<pre>";
print_r(quick_sort($arr));

運行結果:

Array
(
  [0] => 1
  [1] => 2
  [2] => 3
  [3] => 4
  [4] => 5
  [5] => 6
  [6] => 6
  [7] => 8
  [8] => 9
)

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博兴县| 龙海市| 通山县| 齐齐哈尔市| 泊头市| 尤溪县| 太保市| 双牌县| 平谷区| 钟祥市| 称多县| 鹿邑县| 保德县| 元阳县| 综艺| 鞍山市| 肇源县| 自贡市| 嘉义市| 睢宁县| 宜昌市| 台中县| 昂仁县| 巴塘县| 青川县| 丰顺县| 黎川县| 石台县| 阜阳市| 买车| 西畴县| 菏泽市| 中西区| 剑河县| 九台市| 延安市| 富裕县| 团风县| 隆子县| 观塘区| 文水县|