$arr = [4,6,11,22222,125,123,555]; $len = count($arr); for ($i=0;$i<$len;$i++) { for ($j=$i;$j<$len-1;$j++){ if ( $arr[$j] > $arr[$j+1] ) { $val = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $val; } } } print_r($arr);
$arr = [4,6,11,22222,125,123,555]; $len = count($arr); for ($i=0;$i<$len;$i++) { $flag = false; for ($j=$i;$j<$len-1;$j++){ if ( $arr[$j] > $arr[$j+1] ) { $val = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $val; //如果发生交换 则改变为true $flag = true; } } //如果没有改变 则说明是一个有序的数组 直接跳出循环就好 if ( $flag == false ) { break; } } print_r($arr);
冒泡排序本质是比较相邻的两个数字,看是否满足大小关系,如果不满足,则进行互换
每次循环最少让一个元素到指定位置
来源:CSDN
作者:玖岛
链接:https://blog.csdn.net/caihongyu404/article/details/104028863