Quick Sort
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 partitions14 $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 lists26 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, 533 ?>