首頁 > 後端開發 > PHP問題 > php 快速排序的實現

php 快速排序的實現

WBOY
發布: 2023-05-06 10:49:07
原創
755 人瀏覽過

快速排序是一種常見的排序演算法,並且在大多數情況下運行速度快於其他排序演算法,尤其是針對大規模資料的排序場景。在PHP中實現快速排序也很簡單,只需要幾行程式碼就可以實現。本文將介紹php中快速排序的實作。

什麼是快速排序

快速排序是一種基於分治的排序演算法,將待排序的序列分成幾個子序列,而每個子序列都依據一個基準值進行排序。基準值可以是任一個數,通常取第一個或最後一個元素,然後將資料分成兩組,一邊大於該基準值,另一邊小於該基準值。透過遞歸呼叫此過程,最後合併各個子序列,就可以得到一個有序序列。

php快速排序的實作

程式碼如下:

function quickSort($arr)
{
    $length = count($arr);
    if ($length <= 1) {
        return $arr;
    }
    $left = $right = array();
    $pivot = $arr[0];
    for ($i = 1; $i < $length; $i++) {
        if ($arr[$i] < $pivot) {
            $left[] = $arr[$i];
        } else {
            $right[] = $arr[$i];
        }
    }
    return array_merge(quickSort($left), array($pivot), quickSort($right));
}
登入後複製

在上面的程式碼中,$arr為待排序的數組,$left和$right數組分別用來儲存比基準值小和大的數,$pivot為基準值,透過循環將數組中的數按照大小分為兩類,最後再將左右兩部分的數合併起來。

快速排序的時間複雜度為O(nlogn),在實際使用上也有很高的效率。

總結

快速排序是一種常見的基於分治的排序演算法,透過選擇基準數,將待排序數組分成兩個子序列,遞歸地對子序列進行排序,最終將兩個子序列合併為一個有序序列。在PHP中實現快速排序也很簡單,上面給出的程式碼可供參考,快速排序演算法時間複雜度為O(nlogn),在實際使用上表現優異。

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

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