PHP实现快速排序

快速排序属于交换排序,是一种不稳定排序,平均时间复杂度为
O(nlog2^n),最好情况时间复杂度为O(nlog2^n),最坏情况时间复杂度为O(n^2)

<?php
function quickSort($array)
    {
        //判断参数是否是一个数组
        if (!is_array($array)) return false;
        //递归出口:数组长度为1,直接返回数组
        $length = count($array);
        if ($length <= 1) return $array;
        //数组元素有多个,则定义两个空数组
        $left = $right = [];
        //使用for循环进行遍历,把第一个元素当做比较的对象
        for ($i = 1; $i < $length; $i++)
        {
            //判断当前元素的大小
            if ($array[$i] < $array[0]){
                $left[] = $array[$i];
            } else {
                $right[] = $array[$i];
            }
        }
        //递归调用
        $left = quickSort($left);
        $right = quickSort($right);
        //将所有的结果合并
        return array_merge($left, [$array[0]], $right);
    }

	$array = [1, 3, 5, 18, 9, 2, 4, 6, 5, 0, 10, 29, 15];
	print_r(quickSort($array));

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2pegbhfy77y80

原文地址:https://www.cnblogs.com/clivewang/p/9869614.html