$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);
冒泡排序本质是比较相邻的两个数字,看是否满足大小关系,如果不满足,则进行互换
每次循环最少让一个元素到指定位置