中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么在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

闽清县| 宜春市| 从化市| 桑植县| 历史| 拜泉县| 钟山县| 旬阳县| 交口县| 中牟县| 伽师县| 长阳| 阿坝县| 册亨县| 襄樊市| 准格尔旗| 澄江县| 蓝山县| 阳原县| 铅山县| 栾城县| 田林县| 平遥县| 临清市| 普定县| 边坝县| 马关县| 洪泽县| 将乐县| 宝兴县| 江口县| 新丰县| 泸定县| 高州市| 兴山县| 宁波市| 阿拉善盟| 乡宁县| 喀什市| 治多县| 牟定县|