<?php
//冒泡排序函数(数组是值拷贝方式,故参数用引用传递方式)
function bubbleSort(&$arr){
$temp=0;
for($i=0;$i<count($arr)-1;$i++){
for($j=0;$j<count($arr)-1-$i;$j++){
if($arr[$j]>$arr[$j+1]){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
}
$myarr=array(5,4,3,2,1);
bubbleSort($myarr);
echo "排序后的结果为:";
print_r($myarr);
?>
一下来自开源中国的PHP冒泡排序,优化很大,借鉴了:URL----点击打开链接
<?php
// 冒泡排序函数
function bubble_sort(&$array) {
$is_ordered = true; // 认为默认是有序的
$array_length = count($array);
$temp = 0;
// 进行数组排序
for ($i = 0; $i < $array_length - 1; $i++) {
for ($j = 0; $j < $array_length - 1 - $i; $j++) {
if ($array[$j] > $array[$j + 1]) {
$temp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
$is_ordered = false; // 数组是无序的
}
}
// 判断是否可以结束数组的排序
if (!$is_ordered) {
$is_ordered = true; // 再次认为数组是有序的
} else {
break; // 此时数组是有序的,无需继续循环,跳出外层for循环。
}
}
}
// 数组打印函数
function print_array($array) {
foreach ($array as $key => $value) {
echo "\$array[$key] = $value <br />";
}
}
// 初始化数组
$array = array(1, -1, 3, 3, 2, 9, -10, 7, 6, 5);
// 调用函数
bubble_sort($array);
print_array($array);
/* 输出
$array[0] = -10
$array[1] = -1
$array[2] = 1
$array[3] = 2
$array[4] = 3
$array[5] = 3
$array[6] = 5
$array[7] = 6
$array[8] = 7
$array[9] = 9
*/
>