日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:52003
  • 待審:43
  • 小程序:12
  • 文章:1047590
  • 會員:762

快排是一種遞歸算法,將數組劃分成較小元素和較大元素兩部分并遞歸排序,而歸并排序將數組遞歸地分成較小的數組,對每個小數組排序,再合并回原始數組。php 實現的代碼分別為:快排:將數組劃分為小于和大于基準值的元素,然后對每個部分進行遞歸排序。歸并排序:將數組遞歸地分成較小的數組,對每個較小的數組排序,然后將排序后的較小的數組合并回原始數組。

PHP 數組快排 vs. 歸并排序

什么是快排和歸并排序?

快排和歸并排序都是用于對數組進行排序的常見算法。

快排:將數組劃分為兩個部分,一個包含較小的元素,另一個包含較大的元素,然后遞歸地對每個部分排序。

歸并排序:將數組遞歸地分成較小的數組,對每個較小的數組排序,然后將排序后的較小的數組合并回原始數組。

代碼實現

以下是用 PHP 實現的快排和歸并排序函數:

快排:

function quickSort($arr) {
    if (count($arr) <= 1) {
        return $arr;
    }
    $pivot = $arr[0];
    $left = [];
    $right = [];
    for ($i = 1; $i < count($arr); $i++) {
        if ($arr[$i] < $pivot) {
            $left[] = $arr[$i];
        } else {
            $right[] = $arr[$i];
        }
    }
    return array_merge(quickSort($left), [$pivot], quickSort($right));
}

登錄后復制

歸并排序:

function mergeSort($arr) {
    $length = count($arr);
    if ($length <= 1) {
        return $arr;
    }
    $mid = floor($length / 2);
    $left = array_slice($arr, 0, $mid);
    $right = array_slice($arr, $mid);
    return merge(mergeSort($left), mergeSort($right));
}

function merge($left, $right) {
    $result = [];
    $lIndex = $rIndex = 0;
    while ($lIndex < count($left) && $rIndex < count($right)) {
        if ($left[$lIndex] < $right[$rIndex]) {
            $result[] = $left[$lIndex++];
        } else {
            $result[] = $right[$rIndex++];
        }
    }
    while ($lIndex < count($left)) {
        $result[] = $left[$lIndex++];
    }
    while ($rIndex < count($right)) {
        $result[] = $right[$rIndex++];
    }
    return $result;
}

登錄后復制

實戰案例

考慮一個無序的整數數組 [5, 2, 8, 3, 1, 9, 4, 7, 6].

使用快排:

$sortedArray = quickSort([5, 2, 8, 3, 1, 9, 4, 7, 6]);
print_r($sortedArray);

登錄后復制

輸出:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

登錄后復制登錄后復制

使用歸并排序:

$sortedArray = mergeSort([5, 2, 8, 3, 1, 9, 4, 7, 6]);
print_r($sortedArray);

登錄后復制

輸出:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

登錄后復制登錄后復制

分享到:
標簽:PHP 歸并 排序 數組
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 52003

    網站

  • 12

    小程序

  • 1047590

    文章

  • 762

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定