思路分析:循环逐个对比,从第一个开始,与下一个数字进行对比,若大于则交换位置,每循环一遍将最大的一个排到最后。(依次比较相邻的元素,两两比较,就可以最终将最大(小)的元素调整到最顶端、次顶端、、、)
$arr = array(3,2,5,6,1,8,4,9);function bubble_sort($arr){$len=count($arr);//判断数组是否为空if($len<=0){echo '数组不能为空';exit;}for($j=0;$j<$len-1;$j++){$tmp=false;//该层循环用来控制每轮,终将最大(小)的元素调整到最末,并设置标志位,发生变动,就置为true,for($i=0;$i<$len-1-$j;$i++){$temp=$arr[$i];if($arr[$i]>$arr[$i+1]){$tmp=true;$arr[$i]=$arr[$i+1];$arr[$i+1]=$temp;}}//如果标志位没有变动,说明,已经排序完毕,结束循环if($tmp==false){break;}}return $arr;}var_dump(bubble_sort($arr));
本文详细介绍了冒泡排序算法的基本原理及其实现过程。通过循环逐个对比相邻元素大小,并根据需要交换位置来实现排序。文章还提供了一个PHP实现的例子。
758

被折叠的 条评论
为什么被折叠?



