1. 程式人生 > >php演算法之遞迴排序

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]));