PHP版冒泡排序法

function bubbleSort($array)
{
    if (empty($array))
        return false;

    $count = count($array);
    for ($i = $count - 1; $i > 0; $i--) {
        $flag = 0;  // 初始化标记为0

        // 将数组中最大的值放在末尾
        for ($j = 0; $j < $i; $j++) {
            if ($array[$j] > $array[$j + 1]) {
                // 交换值
                $item = $array[$j];
                $array[$j] = $array[$j + 1];
                $array[$j + 1] = $item;
                // 若发生交换,则设标记为1
                $flag = 1;
            }
        }
        // 若没发生交换,则说明数列已有序。
        if (!$flag)
            break;
    }
    return $array;
}

例子:

bubbleSort([20, 40, 30, 10, 60, 50]);

猜你喜欢

转载自blog.csdn.net/sinat_33165594/article/details/88035971