定义 : 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
代码如下 :
<?phpfunction quick_sort($arr){$len=count($arr);if($len<=1){return $arr;}$mid=$arr[0]; // 基准值$left=[]; // 比基准值小的$right=[]; // 比基准值大的// 循环比较for($i=1;$i<$len;$i++){if($arr[$i]<$mid){ // 元素小于基准值,放左边$left[]=$arr[$i];}else{ // 大于基准值$right[]=$arr[$i];}}// 递归拆分left+right$left=quick_sort($left);$right=quick_sort($right);// 将小值,基准值,中间值合并到一个数组return array_merge($left,[$mid],$right);}$arr=[4,1,6,5,7,9,3,2];echo "<pre>";print_r(quick_sort($arr));echo "</pre>";
