$arr = [6, 5, 4, 1, 2, 3];
echo '原始数组元素:' . implode(',', $arr) . "<br />";
$sortedArr = bubble_sort($arr);
echo '排序后的数组元素:' . implode(',', $sortedArr);
function bubble_sort($array) {
for ( $i = count($array) - 1; $i >= 1; $i-- ) {
$flag = FALSE;
// flag 用来记录以下循环中是否发生了交换,没有则代表排序完成
for ( $j = 0; $j <= $i - 1; $j++ ) {
if ( $array[$j] > $array[$j + 1] ) {
// 若左边的元素大于右边的元素,则交换, flag 设置为1
$temp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
$flag = TRUE;
}
}
if (FALSE == $flag) {
// 如果没有交换,则排序完成,退出循环
break;
}
}
return $array;
}