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 ?>