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