码迷,mamicode.com
首页 > 编程语言 > 详细

php算法之递归排序

时间:2018-11-20 01:21:11      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:nbsp   分割   turn   print   UNC   return   fun   排序   for   

<?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算法之递归排序

标签:nbsp   分割   turn   print   UNC   return   fun   排序   for   

原文地址:https://www.cnblogs.com/zxqblogrecord/p/9986594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!