php排序算法--冒泡

冒泡排序

    public function bubbleSort(array $input)
    {
        $num = 0;
        $length = count($input);
        for ($i = 0; $i < $length; $i++) {

            for ($j = $i + 1; $j < $length; $j++) {
                if ($input[$i] < $input[$j]) {
                    $tmp = $input[$i];
                    $input[$i] = $input[$j];
                    $input[$j] = $tmp;
                    //另外一种交换变量方法
                    //list($input[$i],$input[$j]) = [$input[$j],$input[i]]
                    $tmp_flag = true;
                }
                echo (!empty($tmp_flag) ? "交换了(" . str_pad($tmp, 2, '0',
                            STR_PAD_LEFT) . ")" : '无交换(  )') . '      ' . join('  ', $input) . "\n";
                $tmp_flag = false;

                $num++;
            }
            $str = str_repeat('-', 50);
            $str = substr_replace($str, " " . ($i + 1) . "次 ", 22, 3);
            echo $str . "\n";
        }
        echo " 交换了 $num 次", "\n";
        return $input;
    }

效果如图
冒泡

远方的代码
请先登录后发表评论
  • 最新评论
  • 总共0条评论