首先,冒泡排序是计算机科学领域中较简单的排序算法。在冒泡排序的过程中,按照要求从小到大排序或从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。
代码源如下:
<?php
function bubbleSort($arr){
//外层循环控制需要比较的轮数
for($i =1,$len = count($arr); $i < $len; ++$i){
//内层循环控制参与比较的元素
for($j = 0; $j < $len - $i; ++$j){
//比较相邻的两个元素
if($arr[$j] > $arr[$j + 1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j +1] = $temp;
}
}
}
return $arr;
}
$arr = [10,2,5,27,98,31];
print_r(bubble($arr));
?>
注解:第一层的for循环用于冒泡排序的轮数,第二次的for循环及if的代码用于循环比较数组中两个相邻的元素,如果当前一个元素大于后一个元素时,则通过if里的代码交换两个元素的值。编写完成后,调用函数bubbleSort(),将数组按照从小到大的顺序进行排序。
注意:冒泡排序的效率很低,在实际中使用较少。
学习冒泡排序,主要为了锻炼逻辑能力,但一般情况下,不建议使用它。