原理
选择第一个元素作为中间值,然后将剩余单元分割成小于中间值和大于等于中间值两部分,在利用回调将左右两部分进行同样处理,则最终合并即可得到排序后数组
function quickSort($arr)
{
$len = count($arr);
if ($len <= 1) return $arr;
$middle = $arr[0];
$right=$left=array();
for ($i = 1; $i < count($arr); $i++) {
if($arr[$i]<$middle){
$left[]=$arr[$i];
}else{
$right[]=$arr[$i];
}
}
$left=quickSort($left);
$right=quickSort($right);
return array_merge($left,[$middle],$right);
}