每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求,如果不满足就让它俩互换。
function bubble_sort($arr)
{
$len = count($arr);
if ($len < 2) {
return $arr;
}
for ($i = 0; $i < $len; $i++) {
//提前推出冒泡循环的标志位
$flag = false;
for ($j = 0; $j < $len - $i - 1; $j++) {
if ($arr[$j] > $arr[$j + 1]) {
//交换
$tmp = $arr[$j + 1];
$arr[$j + 1] = $arr[$j];
$arr[$j] = $tmp;
$flag = true;
}
}
if ($flag == false) {
break;
}
}
return $arr;
}