冒泡排序笔记
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 协议》,转载必须注明作者和本文链接