Quicksort Example

by randy melder @ gmail.com

Find documentation for this example at: http://www.randymelder.com/2009/12/06/php-linked-list-example/

As referenced from: http://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Quicksort

function quicksort($seq) {
    if(!count($seq)) return $seq;
    $pivot= $seq[0];
    $low = $high = array();
    $length = count($seq);
    for($i=1; $i < $length; $i++) {
        if($seq[$i] <= $pivot) {
            $low [] = $seq[$i];
        } else {
            $high[] = $seq[$i];
        }
    }
    return array_merge(quicksort($low), array($pivot), quicksort($high));
}
//Let's try some examples
$myarr = array(25,5,3,4,17,1,88,8);
$final = quicksort($myarr);
print_r($final);
$final = quicksort($final);
print_r($final);
$strarray = array("mark","wes","mj","bruce","ming","lance","vince");
var_dump(quicksort($strarray));

// Here's the output...
Array
(
    [0] => 1
    [1] => 3
    [2] => 4
    [3] => 5
    [4] => 8
    [5] => 17
    [6] => 25
    [7] => 88
)
Array
(
    [0] => 1
    [1] => 3
    [2] => 4
    [3] => 5
    [4] => 8
    [5] => 17
    [6] => 25
    [7] => 88
)
array(7) {
  [0]=>
  string(5) "bruce"
  [1]=>
  string(5) "lance"
  [2]=>
  string(4) "mark"
  [3]=>
  string(4) "ming"
  [4]=>
  string(2) "mj"
  [5]=>
  string(5) "vince"
  [6]=>
  string(3) "wes"
}