获取随机数组:
function getArray($n){
while($n){
$a[] = rand(1,1000);
$n--;
}
return $a;
}
桶排序
function tongSort($n){
$a = getArray($n);
$length = max($a);
for($m=0; $m<$length+1; $m++){
$i[$m] = 0;
}
foreach($a as $val){
$i[$val]++;
}
for($n=$length; $n>=0; $n--){
for($j=1; $j<=$i[$n]; $j++){
echo $n,',';
}
}
}
冒泡排序
function bubbleSort($n){
$a = getArray($n);
$length = count($a);
for($j = 0; $j < $length-1; $j++){
for($i = 0; $i< $length-$j-1; $i++){
if($a[$i] < $a[$i+1]){
$n = $a[$i+1];
$a[$i+1] = $a[$i];
$a[$i] = $n;
}
}
}
var_dump($a);
}
快速排序
function quickSort($n){
$a = getArray($n);
echo 'before sort';
var_dump($a);
$length = count($a);
doQuickSort($a,0,$length-1);
echo 'after sort';
var_dump($a);
}
function doQuickSort(array &$a, $i, $j){
if($i>=$j) return;
$temp = $a[$i];
$left = $i;
$right = $j;
while($left != $right){
while($a[$right] >= $temp && $right > $left){
$right--;
}
while($a[$left] <= $temp && $left < $right){
$left++;
}
if($left < $right){
$t = $a[$left];
$a[$left] = $a[$right];
$a[$right] = $t;
}
}
$a[$i] = $a[$left];
$a[$left] = $temp;
doQuickSort($a, $i, $left-1);
doQuickSort($a, $left+1,$j);
}