2012-04-23 19 views
-3

L1 = [9、8、7、6、5、4、3、2、1]
L2 = 8、1、3、6、一覧表示します9、7、4、2、5]バブルソート:昇順リストのV/sの降順は

L1要素が昇順ではないため、私は、より多くの/より少ないスワップを行うために、何が気泡を決定するのかを本当に理解していない。

+0

宿題?自分でやってください。あなたは比較を数えるためのコードを書くことさえできます。 – Marcin

+1

あなたはそれを(コンピュータ上または紙の上で)実行して調べないのはなぜですか? –

+1

どの入力がスワップを最も多くしたのかを判断する1つの方法は、バブルソートアルゴリズムをコード化して、スワップが発生した回数を単純にカウントすることです。バブルソートの終わりにこの番号を印刷して、それを使って異なる入力を比較することができます – JaredPar

答えて

1

はい L2は、バブルソートをよりスワップさせるでしょう。バブルソートは、turtles(つまり、リストの末尾に近い小さな数字)で大幅に減速します。 Rabbits(つまり、コードの冒頭に大きな数字が表示されています)は、スワップが速く、カメが順番にリスト内をゆっくりと移動する間は問題ありません。

だからこそ、頑丈な並べ替えコードでは、ほとんどの場合、bubblesortを使用することはありません。 IntrosortCocktail Sortはバブルソートの方が優れています。

あなたはここにこの質問をしている理由私は得ることはありません、と(その私が最初の場所でこの質問を見た唯一の理由ですが)なぜあなたはpython/wがこの質問をタグ付けしました。

+1

あなたの返事をありがとう。 – alicew

+0

@alicew、ちょうど大きな間違いを修正しました(混乱したウサギw/'turtles')。 –

関連する問題