本文实例讲述了php关联数组快速排序的方法。分享给大家供大家参考。具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?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 ;
}
?>
|
希望本文所述对大家的php程序设计有所帮助。