PX : code

quicksort by David Sklar
Download this code


<?php

//
function qsort($a,$f) {
       
qsort_do(&$a,0,Count($a)-1,$f);
}

function 
qsort_do($a,$l,$r,$f) {
       if (
$l $r) {
               
qsort_partition(&$a,$l,$r,&$lp,&$rp,$f);
               
qsort_do(&$a,$l,$lp,$f);
               
qsort_do(&$a,$rp,$r,$f);
       }
}

function 
qsort_partition($a,$l,$r,$lp,$rp,$f) {
       
$i $l+1;
       
$j $l+1;
       
       while (
$j <= $r) {
               if (
$f($a[$j],$a[$l])) {
                       
$tmp $a[$j];
                       
$a[$j] = $a[$i];
                       
$a[$i] = $tmp;
                       
$i++;
               }
               
$j++;
       }
       
       
$x $a[$l];
       
$a[$l] = $a[$i-1];
       
$a[$i-1] = $x;
       
       
$lp $i 2;
       
$rp $i;
}

?>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.