バブルソート

記事数:(1)

アルゴリズム

バブルソートで学ぶ整列の基礎

泡の動きを思い浮かべてみてください。水槽の底から小さな泡が次々と水面へと上がっていくように、数が小さい順にデータを整列していく方法、それが泡の並び替え、つまりバブルソートです。 この方法は、隣り合った二つの数を比べるという単純な作業の繰り返しです。たとえば、左側の数が右側の数よりも大きければ、二つの数の位置を入れ替えます。そうでなければ、そのままにしておきます。この比較と入れ替えを、整列したい数の列の端から端まで行います。 一番最初の比較では、一番大きな数が列の一番右端に移動します。まるで一番大きな泡が水面に浮かび上がるようにです。次に、同じ作業を繰り返しますが、今度は一番右端の数は既に一番大きな数なので、比較の対象から外します。二回目の比較では、二番目に大きな数が右から二番目に移動します。 このように、泡が水面に上がっていくように、大きな数が列の右端へと順々に移動していきます。この作業を繰り返すことで、最終的にはすべての数が小さい順、または大きい順に整列されます。 泡の並び替えは、仕組みが分かりやすく、簡単にプログラムで表現できるため、数を整列する方法の入門として最適です。しかし、数の量が多い場合は、比較と入れ替えの回数が膨大になり、処理に時間がかかってしまうという弱点も持っています。そのため、大量の数の処理には、より効率的な別の方法が用いられます。とはいえ、泡の並び替えは、整列の基本的な考え方を学ぶ上で、非常に役立つ方法です。