home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 4 / hacker04 / 04_HACK04.ISO / src / PHP / php.exe / Quicksort.php < prev    next >
Encoding:
Text File  |  2001-07-03  |  869 b   |  41 lines

  1.     //**************************************
  2.     //     
  3.     // Name: Quicksort
  4.     // Description:quick sort for associativ
  5.     //     e arrays by David Sklar
  6.     // By: PHP Code Exchange
  7.     //**************************************
  8.     //     
  9.     
  10.     <?
  11.     function qsort($a,$f) {
  12.     qsort_do(&$a,0,Count($a)-1,$f);
  13.     }
  14.     function qsort_do($a,$l,$r,$f) {
  15.     if ($l < $r) {
  16.     qsort_partition(&$a,$l,$r,&$lp,&$rp,$f);
  17.     qsort_do(&$a,$l,$lp,$f);
  18.     qsort_do(&$a,$rp,$r,$f);
  19.     }
  20.     }
  21.     function qsort_partition($a,$l,$r,$lp,$rp,$f) {
  22.     $i = $l+1;
  23.     $j = $l+1;
  24.     while ($j <= $r) {
  25.     if ($f($a[$j],$a[$l])) {
  26.     $tmp = $a[$j];
  27.     $a[$j] = $a[$i];
  28.     $a[$i] = $tmp;
  29.     $i++;
  30.     }
  31.     $j++;
  32.     }
  33.     $x = $a[$l];
  34.     $a[$l] = $a[$i-1];
  35.     $a[$i-1] = $x;
  36.     $lp = $i - 2;
  37.     $rp = $i;
  38.     }
  39.     ?>
  40.  
  41.