i 第一次迴圈找出最大的
第二次迴圈找出第二大
依次類推
j 迴圈相鄰兩個值比較
function bubbleSort($arr) {
// 陣列個數
$num = count($arr);
// 是否有資料交換標誌
$flag = true;
for ($i = 0; $i < $num - 1 && $flag; ++$i) {
$flag = false;
for ($j = 0; $j < $num - $i - 1; ++$j) {
if ($arr[$j] > $arr[$j+1]) {
// 交換 $arr[j] 和 $arr[$j+1] 的位置
list($arr[$j], $arr[$j+1]) = array($arr[$j+1], $arr[$j]);
$flag = true;
}
}
}
return $arr;
}
$testArr = [12, 1, 3, 2, 42, 50, 22, 3];
$arr = bubbleSort($testArr);
print_r($arr);
本作品採用《CC 協議》,轉載必須註明作者和本文連結