分而治之
(1) 找出基线条件,这种条件必须尽可能简单。
(2) 不断将问题分解(或者说缩小规模),直到符合基线条件。
$arr=array(5,1,2);
function quicksort($arr){
if(count($arr)<2){
return $arr;
}else{
$pivot=$arr[0];
$less=[];//小于基准线的数组
$greater=[];//大于基准线的数组
for($i=1;$i<count($arr);$i++){
if($arr[$i]<$pivot){
$less[count($less)]=$arr[$i];
}else{
$greater[count($greater)]=$arr[$i];
}
}
return array_merge(quicksort($less),array($pivot),quicksort($greater));
}
}
$list= quicksort($arr);