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

 

posted @ 2014-11-09 17:56  crepesofwrath  阅读(283)  评论(0编辑  收藏  举报