function quickSort(&$arr, $left=NULL, $right=NULL) {
if($left===NULL) $left = 0;
if($right===NULL) $right = count($arr)-1;
if ($left < $right) {
$parindex = partition($arr, $left, $right);
quickSort($arr, $left, $parindex-1);
quickSort($arr, $parindex+1, $right);
}
return $arr;
};
function partition(&$arr, $left, $right) {
$pivot = $left;
$index = $pivot + 1;
for ($i=$index; $i<=$right; $i++)
{
if($arr[$i] < $arr[$pivot])
{
swap($arr, $i, $index);
$index++;
}
}
swap($arr, $pivot, $index-1);
return $index-1;
}
function swap(&$arr, $i, $j)
{
$temp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $temp;
return $arr;
}
$arr = [5,1,8,6,4,3,9,7,2,0];
quickSort($arr);
var_dump(json_encode($arr));
评论已关闭。