php 快速排序
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>';
最主要的就是记得,递归.
作者:Wicub
免责声明:文章、笔记等仅供分享、探讨、参考等学习之用,因此造成的任何后果概不负责。(如有错误、疏忽等问题,欢迎指正、讨论,谢谢)
本文版权归作者和博客园共有,欢迎转载,但请务必在文章页面明显位置给出原文连接,谢谢配合。