php演算法之遞迴排序
阿新 • • 發佈:2018-11-19
<?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]));