function quickSort(array $array){ $len = count($array); if($len <= 1){ return $array; } $key = $array[0]; $left = array(); $right = array(); for($i=1; $i<$len; $i++) { //echo $i . ' '; if($array[$i] < $key) { $left[] = $array[$i]; } else{ $right[] = $array[$i]; } } $left = quickSort($left); $right = quickSort($right); //这里都是注释
var_dump($left); echo 'left' . ' '. "<br>"; var_dump(array($key)); echo 'key' . ' '. "<br>"; var_dump($right); echo 'right' . ' '. "<br>"; var_dump(array_merge($left, array($key), $right)); echo 'array_mergeght' . ' '. "<br>"; echo '<br>';
//查看递归出来的数组,记得要从后往前看,而且顺序已经改变
//最后的return都是直接给$left or $right;
return array_merge($left, array($key), $right); } // print '<pre>'; print_r(quickSort(array(1,4,22,5,7,6,9))); //print '</pre>';
最主要的就是记得,递归.