//快排
function quickSort($array){
//统计数组长度,如果长度小于2则直接返回,无需排序
$count = count($array);
if($count < 2){
return $array;
}
//定义2个空数组,用于存放对比后的值
$leftArray = $rightArray = [];
//设置第一个元素为基准值
$middle = $array[0];
for($i=1;$i<$count;$i++){
//循环判断,如果当前值小于基准值则存放到左数组,否则放入右数组
if($array[$i] < $middle){
$leftArray[] = $array[$i];
}else{
$rightArray[] = $array[$i];
}
}
//再对比做数组
$leftArray = quickSort($leftArray);
//再对比右数组
$rightArray = quickSort($rightArray);
//合并3个数组,并返回
return array_merge($leftArray,[$middle],$rightArray);
}
$array = [9,7,4,4,2,11,10,6];
print_r(quickSort($array));
03-05