经测试代码如下:
/**
* 关联数组快速排序
*
* @param
* @arrange (编程之家) jb51.cc
**/
function qsort($a,$f) {
qsort_do(&$a,Count($a)-1,$f);
}
function qsort_do($a,$l,$r,$f) {
if ($l < $r) {
qsort_partition(&$a,&$lp,&$rp,$f);
qsort_do(&$a,$lp,$rp,$f);
}
}
function qsort_partition($a,$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;
}
/*** 代码来自编程之家 jb51.cc(jb51.cc) ***/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。