PHP 冒泡排序的两种实现方式

PHP 冒泡排序的两种实现方式

author: he xiaodong date: 2020-04-27

PHP 实现

function sortV1(array $values) : array
{
    $len = count($values);
    for ($i = 0; $i < $len; $i++) {
        for ($j = 0; $j < $len - $i - 1; $j++) {
            if ($values[$j] > $values[$j+1]) {
                [$values[$j], $values[$j+1]] = [$values[$j+1], $values[$j]];
            }
        }
    }
    return $values;
}

return sortV1([1,3,4,2]); // output: [1,2,3,4]

PHP 实现2

function sortV2(array $values) : array
{
    $len = count($values);
    for ($i = 0, $exchange = true; $exchange && $i < $len; $i++) {
        for ($j = 0, $exchange = false; $j < $len - $i - 1; $j++) {
            if ($values[$j] > $values[$j+1]) {
                [$values[$j], $values[$j+1]] = [$values[$j+1], $values[$j]];
                $exchange = true;
            }
        }
    }
    return $values;
}

return sortV2([1,3,4,2]); // output: [1,2,3,4]