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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容