Developer Toolbox

バブルソート

リストを端から端まで何度も見ていき、順番が逆の隣同士を入れ替えます。1周するたびに、残りの最大値が右端に来ます。

  • Ω(n)
  • Θ(n²)
  • O(n²)
  • O(1)
  • はい
  • はい
  • 比較中
  • 移動中
  • 位置が確定
0 / 453 ステップ

順序が逆のペア: 154(開始時: 154) 順序が逆 順序どおりに

比較回数 入れ替え回数

再生を押すと、並べ替えが進むにつれてコストが増える様子を線で表示します

再生を押すか、1ステップずつ進めてください。

スペースキー: 再生・一時停止。左右の矢印キー: ステップ移動。Home キーと End キー: ジャンプ。

試してみましょう: ほぼ並んでいるリストを選んでください。入れ替えのない周が1回あれば、そこで早めに終わります。

仕組み

隣り合う2つの値を比べ、左の方が大きければ入れ替えます。すると1周ごとに最大値が、泡が浮かぶように右端まで進みます。入れ替えが1回もない周があれば、リストはもう並んでいます。

向いている場面

長いリストでは遅いので、実際のプログラムではほとんど使いません。ただし学ぶには最適です。比べて入れ替えるという、並べ替えの基本がよくわかります。速いのは、リストが最初から並んでいるときだけです。