php 快速排序算法

来源:互联网 发布:单片机培训机构 编辑:程序博客网 时间:2024/04/28 21:07
/** * 快速排序算法 * * 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小, * 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 * * @param array $arr * @return $arr */ function quickSort($arr = array()) {     if(!is_array($arr) || empty($arr))     {         return $arr;     }     $length = count($arr);     $base = $arr[0]; //选择第一个数字作为基准     $left_array = array();  //小于基准     $right_array = array();  //大于等于基准     for($i=1; $i<$length; $i++) {         if($base > $arr[$i]) {             //放入左边数组             $left_array[] = $arr[$i];         } else {             //放入右边数组             $right_array[] = $arr[$i];         }     }     //分别对两数组进行相同的排序处理方式递归     $left_array = quickSort($left_array);     $right_array = quickSort($right_array);     //合并数组     return array_merge($left_array, array($base), $right_array); }
0 0
原创粉丝点击