$arr = [2,4,1,3,10,9,67];
//2
echo json_encode(quickSort($arr));
function quickSort($arr) {
if (empty($arr)) {
return $arr;
}
$len = count($arr);
$i = 0;
$j = $len-1;
getRes($arr, $i, $j);
return $arr;
}
function getRes(&$arr, $start, $end) {
if ($start >= $end) {
return;
}
$index = adjust($arr, $start, $end);
getRes($arr, $start, $index-1);
getRes($arr, $index+1, $end);
}
function adjust(&$arr, $start, $end) {
$tmp = $arr[$start];
while($start < $end) {
//从后往前
while($start < $end && $arr[$end] >= $tmp) {
$end--;
}
$arr[$start] = $arr[$end];
//从前往后
while($start < $end && $arr[$start] <= $tmp) {
$start++;
}
$arr[$end] = $arr[$start];
}
$arr[$start] = $tmp;
return $start;
}