快速排序
24,77,53,47,52,67,85,15,25,84,35,16,4,7,9,
4,7,9,15,16,24,25,35,47,52,53,67,77,84,85,
<?php
function swap(&$a ,&$b) {
$temp = $a ;
$a= $b ;
$b = $temp ;
}
function alist($a) {
$ln = count($a ) ;
for ($i = 0 ; $i <$ln; $i++) {
echo $a[$i] . "," ;
}
echo "<br>" ;
}
echo "快速排序<br>" ;
//快速--------------------------------------------------------------
function qsort(&$a,$left, $right){
if ($left>= $right) return ;
do {
for ($i = $left+1 ; $i< $right ; $i++) {
if ($a[$left] < $a[$i] ) break ;}
for ($j = $right; $j > $left ; $j--) {
if ($a[$left] > $a[$j] ) break ; }
if ($i < $j ) {
//echo "$i ," . $a[$i] . " , $j ," . $a[$j] . " <br>" ;
swap($a[$i] , $a[$j]) ;
}
}while ($j>$i) ;
swap($a[$left] , $a[$j]) ;
qsort($a , $left, $j-1) ;
qsort($a , $j+1, $right) ;
//alist ($a) ;
}
$a = array (24,77,53,47,52,67,85,15,25,84,35,16,4,7,9) ;
$ln = count($a ) ;
for ($i = 0 ; $i <$ln; $i++) {
echo $a[$i] . "," ;
}
echo "<br>" ;
qsort ($a , 0, $ln-1) ;
alist ($a) ;
show_source("qsort.php") ;
?>