前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP实现快速排序

PHP实现快速排序

作者头像
Clive
发布2018-04-19 17:12:52
1.1K0
发布2018-04-19 17:12:52
举报
文章被收录于专栏:Clive的技术分享

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

代码语言:javascript
复制
<?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));
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.04.17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档