91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

柘荣县| 夹江县| 丹巴县| 安西县| 屯门区| 茂名市| 沾化县| 诏安县| 博客| 弥勒县| 洪湖市| 长乐市| 冀州市| 蒙山县| 龙江县| 甘洛县| 鸡泽县| 庆云县| 南华县| 云林县| 宁国市| 云梦县| 康定县| 通州区| 化州市| 内丘县| 青海省| 洪江市| 同德县| 郑州市| 大竹县| 孟津县| 新乡市| 鄂伦春自治旗| 沂南县| 紫金县| 张家港市| 城口县| 柳州市| 北票市| 岑溪市|