1 <?php
2 function quickSort($arr) {
3 //先判斷是否需要繼續進行
4 $length = count($arr);
5 if ($length <= 1) {
6 return $arr;
7 }
8 //如果沒有傳回,說明數組内的元素個數 多餘1個,需要排序
9 //選擇一個标尺
10 //選擇第一個元素
11 $base_num = $arr[0];
12 //周遊 除了标尺外的所有元素,按照大小關系放入兩個數組内
13 //初始化兩個數組
14 $left_array = array();//小于标尺的
15 $right_array = array();//大于标尺的
16 for ($i = 1; $i < $length; $i++) {
17 if ($base_num > $arr[$i]) {
18 //放入左邊數組
19 $left_array[] = $arr[$i];
20 } else {
21 //放入右邊數組
22 $right_array[] = $arr[$i];
23 }
24 }
25 //再分别對 左邊 和 右邊的數組進行相同的排序處理方式
26 //遞歸調用這個函數,并記錄結果
27 $left_array = quickSort($left_array);
28 $right_array = quickSort($right_array);
29
30 //合并左邊 标尺 右邊
31 return array_merge($left_array, array($base_num), $right_array);
32 }
33 $arr = array(88, 1, 2, 5, 4, 3, 66, 0);
34 $res = quickSort($arr);
35 print_r($res);