<?php
//快速排序
$arr=array();
$arr=array(52,44,23,16,72,47,189);
function qsort($arr){
$length=count($arr);//得到數組的長度
if(!is_array($arr)||empty($arr)){ //先判斷是否需要繼續進行
return array();
}
if($length<=1){ //避免無限遞歸
return $arr;
}
$key=$arr[0];//選擇一個標尺,比它大的放到右邊,比它小的存放到左邊
$left_array=array();
$right_array=array();
for($i=1;$i<$length;$i++){
if($arr[$i]<$key){
$left_array[]=$arr[$i];//小於標尺的
}else{
$right_array[]=$arr[$i];//大於標尺的
}
}
$left_array = qsort($left_array);
$right_array = qsort($right_array);
return array_merge($left_array,array($key),$right_array);
}
print_r(qsort($arr));
//Array ( [0] => 16 [1] => 23 [2] => 44 [3] => 47 [4] => 52 [5] => 72 [6] => 189 )
?>