快速排序遞歸版php實現

不言
發布: 2023-03-23 22:10:02
原創
1053 人瀏覽過

這篇文章介紹的內容是關於快速排序遞歸版php實現,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

今天開始複習演算法,連最熟悉的快排都寫不出來了,汗顏,貼下程式碼,以備後用吧

function qSort(array &$a, $low, $high)
{   
    if($low >= $high) {
        return;
    }
    $index = partition($a,$low,$high);
    qSort($a,$low,$index-1);
    qSort($a,$index+1,$high);
}
登入後複製
//元素相互赋值比交换效率
function partition(array &$a, $low, $high)
{
    $temp = $a[$low];
    while($low < $high) {
        while($low < $high && $a[$high] >= $temp) { 
            --$high;
        }   
        $a[$low] = $a[$high];
        while($low < $high && $a[$low] <= $temp) {
            ++$low;
        }   
        $a[$high] = $a[$low];
    }   
    $a[$low] = $temp;
    return $low;
}
登入後複製

$a = [0,20,7,-1,6,2,6,2,8, 9,0,1];
qSort($a, 0, count($a) -1);

var_dump(implode(',', $a));

結果顯示:-1,0,0,1,2,2,6,6,7,8,9,20

相關推薦:

程式碼詳解JavaScript如何實現快速排序

php演算法之快速排序

#

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!