dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9559|回复: 216

[功能实现] PHP功能实现之数组快速排序

  [复制链接]
  • TA的每日心情

    2024-11-19 20:46
  • 签到天数: 244 天

    [LV.8]以坛为家I

    4434

    主题

    1459

    帖子

    1万

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    10734
    发表于 2018-11-13 23:37:43 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    排序原理:选出当前数组中任一元素(通常为第一个)作为标准,新建两个空数组分别置于当前数组前后,然后遍历当前数组,如果数组中元素值小于等于第一个元素值就放到前边空数组,否则放到后边空数组。
    [PHP] 纯文本查看 复制代码
    //快速排序
    function quick_sort($arr) {
        //获取数组单元个数
        $count = count($arr);
        //判断数组长度
        if ($count <= 1) {
            return $arr;
        } else {
            //定义两个空数组
            $before = $after = array();
            //遍历数组
            for ($i=1; $i < $count; $i++) {
                //以第一个元素为标准进行判断
                if ($arr[$i] <= $arr[0]) {
                    $before[] = $arr[$i];
                } else {
                    $after[] = $arr[$i];
                }
            }
            //递归调用
            $before = quick_sort($before);
            $after = quick_sort($after);
            //合并数组
            return array_merge($before, array($arr[0]), $after);
        }
    }
    //测试
    $arr = array(16, 9, 3, 12, 88, 19, 18, 16);
    var_dump(quick_sort($arr));


    效果截图:
       1442837-20180908180232787-235876364.png



    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    7588

    帖子

    1153

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1153

    发表于 2018-11-14 00:12:53 | 显示全部楼层
    学习了,不错,讲的太有道理了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23

    主题

    7985

    帖子

    1042

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1042

    发表于 2018-11-14 10:27:10 | 显示全部楼层
    学习了,不错,讲的太有道理了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    7864

    帖子

    958

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    958

    发表于 2018-11-14 11:05:44 | 显示全部楼层
    支持一下:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    7770

    帖子

    1037

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1037

    发表于 2018-11-14 11:56:18 | 显示全部楼层
    有道理。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27

    主题

    7649

    帖子

    956

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    956

    发表于 2018-11-14 12:53:46 | 显示全部楼层
    支持一下:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    49

    主题

    7865

    帖子

    940

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    940

    发表于 2018-11-14 13:23:49 | 显示全部楼层
    好好 学习了 确实不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-7-21 16:49
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    174

    主题

    8025

    帖子

    2046

    积分

    荣誉会员

    积分
    2046

    发表于 2018-11-14 14:24:54 | 显示全部楼层
    好好 学习了 确实不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18

    主题

    7874

    帖子

    1016

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1016

    发表于 2018-11-14 17:40:16 | 显示全部楼层
    有道理。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37

    主题

    7807

    帖子

    994

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    994

    发表于 2018-11-14 18:01:08 | 显示全部楼层
    珍惜生命,果断回帖。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-24 02:58 , Processed in 0.183817 second(s), 45 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表