首頁 >後端開發 >php教程 >快速排序遞歸版php實現

快速排序遞歸版php實現

不言
不言原創
2018-04-16 10:25:531093瀏覽

這篇文章介紹的內容是關於快速排序遞歸版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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn