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 . '&nbsp;';
             if($array[$i] < $key) {
                
                $left[] = $array[$i];
             }
             else{
                 
                 $right[] = $array[$i];
             }
         }
         $left = quickSort($left);
         $right = quickSort($right);
         
     //这里都是注释
var_dump($left); echo 'left' . '&nbsp;'. "<br>"; var_dump(array($key)); echo 'key' . '&nbsp;'. "<br>"; var_dump($right); echo 'right' . '&nbsp;'. "<br>"; var_dump(array_merge($left, array($key), $right)); echo 'array_mergeght' . '&nbsp;'. "<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>';

最主要的就是记得,递归.

原文地址:https://www.cnblogs.com/wicub/p/3221723.html