冒泡排序笔记

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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!