龙空技术网

十大排序算法-快速排序 PHP 实现

PHP程序员 78

前言:

今天你们对“php正序”大致比较关注,大家都想要剖析一些“php正序”的相关知识。那么小编也在网上网罗了一些有关“php正序””的相关知识,希望你们能喜欢,我们一起来学习一下吧!

快排的核心就是切分,然后递归。

首先取一个要进行比较的值,一般用第一个就可以 $mid 。简单易记。再初始化 2 个容器,$left, $right 分别存小值和大值,正序排。

然后进行数组遍历,大于比较值的放 $right ,小于的放 $left。 再递归遍历就可以了。

可以先想象用一个小数组输入 [1,3,2],默念运行一下程序

function quickSort($arr){    if (count($arr) <= 1) {        return $arr;    }    $mid = $arr[0];    $left = $right = [];    for ($i = 1; $i < count($arr); $i++) {        if ($arr[$i] > $mid) {            $right[] = $arr[$i];        } else {            $left[] = $arr[$i];        }    }    $left = quickSort($left);    $right = quickSort($right);    return array_merge($left, [$mid], $right);}

标签: #php正序 #php的排序函数 #php数组从大到小排序代码