PHP实现的快速排序

<?php
function quickSort(&$array, $left, $right){
    if ($left >= $right){
        return ;
    }
    $pivot = $array[$left]; //选择比较元素
    $array[$left] = $array[$right];
    $array[$right] = $pivot; //比较元素移至数组末尾
    $storeIdx = $left;
    for ($i = $left; $i < $right; $i++){ //找到比较元素合适的位置
        if ($array[$i] < $pivot){//小于比较元素的元素移至数组左边,大于比较元素的元素移至数组右边
            $tmp = $array[$storeIdx];
            $array[$storeIdx] = $array[$i];
            $array[$i] = $tmp;
            $storeIdx++;
        }
    }
    $tmp = $array[$storeIdx];
    $array[$storeIdx] = $pivot; //比较元素插入合适位置
    $array[$right] = $tmp; 
    quickSort($array, $left, $storeIdx-1); //比较左边部分
    quickSort($array, $storeIdx+1, $right); //比较右边部分
}
$arr = array(1,4,2,1,78,100,3,2,900,1,10);
quickSort($arr,0,count($arr)-1);
var_dump($arr);
?>

Wiki:http://en.wikipedia.org/wiki/Quicksort

原文地址:https://www.cnblogs.com/wadeyu/p/2789724.html