<?php
$arr=array(6,0,4,1,-1,9,6,7);
function quickSort($str) {
if(count($str)<=1) return $str;//如果个数不大于一,直接返回
$key=$str[0];//取一个值,稍后用来比较;
$left_arr=array();
$right_arr=array();
for($i=1;$i<count($str);$i++){//比$key大的放在右边,小的放在左边;
if($str[$i]<=$key)
$left_arr[]=$str[$i];
else
$right_arr[]=$str[$i];
}
$left_arr=quicksort($left_arr);//进行递归;
$right_arr=quicksort($right_arr);
return array_merge($left_arr,array($key),$right_arr);//将左中右的值合并成一个数组
;
}
print_r(quickSort($arr));
?>
下面这一段递归不怎么懂,是怎么把他们分开后又进行组合的,简单通俗点
$left_arr=quicksort($left_arr);//进行递归;
$right_arr=quicksort($right_arr);
直接用sort函数排序不就完了,写这么多代码作什么呢?
sort($arr);
再输出结果看看,已经就排好了。
<?php居然有朋友在评论里要求,就满足了这位朋友的需求。