快速排序算法

复制代码
<?php
    function quickSort($arr){
        $count=count($arr);
        if($count>1){
            //以第一个数作为基准
            $mark=$arr[0];
            //定义两个空数组来存放基准数两边的数据
            $right=array();
            $left=array();
            //开始循环比较,从大到小排序
            for ($i = 1; $i < $count; $i++) { 
                if($mark>$arr[$i]){
                    $right[]=$arr[$i];
                }else{
                    $left[]=$arr[$i];
                }
            }
            //一趟快速排序结束

            //递归快速排序
            $right=quickSort($right);
            $left=quickSort($left);

            //把最后的结果组合为一个数组
            $result=array_merge($left,array($mark),$right);
        }else{
            $result=$arr;
        }

        //返回结果
        return $result;
    }

    //定义一个数组
    $arr=array(8,2,1,5,7,6,4,9,3);

    $result=quickSort($arr);

    var_dump($result);
复制代码

 

posted on   Mr.风的影子  阅读(139)  评论(0编辑  收藏  举报

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示