目录
排序思想:
在冒泡排序过程中,按照从小到大或者从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。最终实现冒泡排序。
代码实现:
1、升序排序(从小到大排序)
将数组 [ 78,2,27,5,34,31,98,45 ] 进行升序排序(从小到大排序)
基本代码:
<?php
//申明数组
$array = [78,2,27,5,34,31,98,45];
//申明函数
function bubble($arr){
//外层循环控制需要比较的轮数(控制比较的轮数)
for($i=1;$i<count($arr);$i++){
//内层循环参与比较的元素
for($j=0;$j<count($arr)-1;$j++){
//比较相邻的两个元素
if($arr[$j] > $arr[$j+1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
//调用函数,并输出
echo "<pre>";
print_r(bubble($array));
最终效果:
2、降序排序(从大到小排序)
将数组 [ 78,2,27,5,34,31,98,45 ] 进行升序排序(从大到小排序)
基本代码:
<?php
//申明数组
$array = [78,2,27,5,34,31,98,45];
//申明函数
function bubble($arr){
//外层循环控制需要比较的轮数(控制比较的轮数)
for($i=1;$i<count($arr);$i++){
//内层循环参与比较的元素
for($j=0;$j<count($arr)-1;$j++){
//比较相邻的两个元素
if($arr[$j] < $arr[$j+1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
//调用函数,并输出
echo "<pre>";
print_r(bubble($array));
最终效果:
总结:
升序和降序排序的关键在于 比较相邻的两个元素,“<” ">"
升序:
降序: