~~~
<?php
$a = [12,35.2,99,18.4,76,6,94,45,72,12,8,6];
function quick_sort($arr) {
//先判斷是否需要繼續進行
$length = count($arr);
if($length <= 1) {
return $arr;
}
//如果沒有返回,說明數組內的元素個數 大余1個,需要排序
//選擇一個標尺
//選擇第一個元素
$base_num = $arr[0];
//遍歷 除了標尺外的所有元素,按照大小關系放入兩個數組內
//初始化兩個數組
$left_array = array();//小于標尺的
$right_array = array();//大于標尺的
for($i=1; $i<$length; $i++) {
if($base_num > $arr[$i]) {
//放入左邊數組
$left_array[] = $arr[$i];
} else {
//放入右邊
$right_array[] = $arr[$i];
}
}
//再分別對 左邊 和 右邊的數組進行相同的排序處理方式
//遞歸調用這個函數,并記錄結果
$left_array = quick_sort($left_array);
$right_array = quick_sort($right_array);
//合并左邊 標尺 右邊
return array_merge($left_array, array($base_num), $right_array);
}
print_r(quick_sort($a));
?>
~~~