Quick Sort,quicksort
1 <?php
2 function sortQuick($a){ # a is an array of numbers
3
4 # length of a
5 $m = count($a);
6
7 if($m < 2){
8 return $a;
9 }
10
11 $pivot = $a[0];
12
13 // declare two partitions
14 $left = $right = array();
15
16 for($i = 1; $i < $m; $i++){
17 if($a[$i] < $pivot){
18 $left[] = $a[$i];
19 }
20 else{
21 $right[] = $a[$i];
22 }
23 }
24
25 // use recursion to now sort the left and right lists
26 return array_merge(sortQuick($left), array($pivot), sortQuick($right));
27 }
28
29 $arr = range(5, 0);
30 echo implode(', ', sortQuick($arr));
31
32 // 0, 1, 2, 3, 4, 5
33 ?>