您的位置 首页 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 实现

文章地址:https://www.zhihuclub.com/77150.shtml

关于作者: 智云科技

热门文章

网站地图