版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/phpbook/article/details/53177853
思路分析:快速排序是在冒泡排序的基礎上做的升級,以第一個元素爲標尺,對無序數組進行分割,大的部分組成一個臨時數組,小的部分組成另一個臨時數組,再分別將兩個臨時數組遞歸分割,直至只剩一個元素,將所有臨時數組(只剩了單個元素),進行組合,就合成了新的有序數組。
$arr = array(9,3,4,1,7,10,8,2,5,6);
function part_sort($array){
$len=count($array);
if($len<=1){
return $array;
}
$lpart = array();
$rpart = array();
for($i=1;$i<$len;$i++){
if($array[$i]<=$array[0]){
$lpart[]=$array[$i];
}else{
$rpart[]=$array[$i];
}
}
$lpart = part_sort($lpart);
$rpart = part_sort($rpart);
$arr = array_merge($lpart,array($array[0]),$rpart);
return $arr;
}
echo "<pre>";
print_r(part_sort($arr));
echo "</pre>";