php算法之递归排序

Posted running-fly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php算法之递归排序相关的知识,希望对你有一定的参考价值。

<?php
function quickSort($arr) {
    if(count($arr) > 1) {
        $k=$arr[0];
        $x=array();
        $y=array();
        $_size=count($arr);
        for($i=1;$i<$_size;$i++) {
            if($arr[$i] <=$k) {
                $x[] =$arr[$i];//小的放这边
            }else{
                $y[] =$arr[$i];//大的放这边。这样子是从小到大排序,如果想从大到小返回,那么调换位置与$x[] =$arr[$i];的位置即可
            }
        }
        //得到分割看来左右两边的数据
        $x= quickSort($x);//左边的数据,对这些数据再次使用分割法排序,返回的结果就是排序后的数据

        $y= quickSort($y);//右边的数
        return array_merge($x,array($k),$y);
    }else{
        return $arr;
    }
}
print_r(quickSort([6,8,9,2,4,5]));

 

以上是关于php算法之递归排序的主要内容,如果未能解决你的问题,请参考以下文章

重温基础算法内部排序之归并排序法

重温基础算法内部排序之归并排序法

十大排序之归并排序

数据结构与算法之排序算法:归并排序

算法图解之快速排序

排序算法之快速排序