<?php
$arr = array(12,1,5,88,35,0,18,100,50,21,28,7,9,9.5);//交换两值
function swap(&$m, &$n){$temp = $m;$m = $n;$n = $temp;/* 如数组中有小数时,以下方法会省略小数点后面的数$m = $m ^ $n;$n = $m ^ $n;$m = $m ^ $n;*/
}//冒泡排序
function bubbleSort($arr){if(!is_array($arr)) return $arr;$count = count($arr);for($i=1; $i<$count; $i++){for($j=0; $j<$count-$i;$j++){if($arr[$j] > $arr[$j+1]){/*$temp = $arr[$j];$arr[$j] = $arr[$j+1];$arr[$j+1] = $temp;*//*$arr[$j] = $arr[$j] + $arr[$j+1];$arr[$j+1] = $arr[$j] - $arr[$j+1];$arr[$j] = $arr[$j] - $arr[$j+1];*//*$arr[$j] = $arr[$j] ^ $arr[$j+1];$arr[$j+1] = $arr[$j] ^ $arr[$j+1];$arr[$j] = $arr[$j] ^ $arr[$j+1];*/swap($arr[$j], $arr[$j+1]);}}}return $arr;
}$arr2 = bubbleSort($arr);
echo implode(',', $arr2).'<hr>';//冒泡排序
function bubbleSort2($arr){if(!is_array($arr)) return $arr;$count = count($arr);for($i=0; $i<$count-1; $i++){for($j=$i+1; $j<$count; $j++){if($arr[$i] < $arr[$j]){/*$arr[$i] = $arr[$i] + $arr[$j];$arr[$j] = $arr[$i] - $arr[$j];$arr[$i] = $arr[$i] - $arr[$j];*/swap($arr[$i], $arr[$j]);}}}return $arr;
}
$arr3 = bubbleSort2($arr);
echo implode(',', $arr3).'<hr>';;//快速排序
function quickSort($arr){if(!is_array($arr)) return $arr;$len=count($arr);for($i=0; $i<$len; $i++){$min = $arr[$i];for($j=$i+1; $j<$len; $j++){if($arr[$i] > $arr[$j]){$temp = $arr[$i];$arr[$i] = $arr[$j];$arr[$j] = $temp;}}$min = $arr[$j];}return $arr;
}
$arr4 = quickSort($arr);
echo implode(',', $arr4);
?>