日常のアルゴリズム | 身長の低い順番に並べる(バブルソート)

最終更新日

バブルソートは、隣り合う値を比較しながら、必要に応じて入れ替えていく並べ替えのアルゴリズムです。動きは単純ですが、「比較する」「条件に合えば入れ替える」「同じ手順を繰り返す」という、プログラムの基本的な考え方が詰まっています。

バブルソートとは

バブルソートは、隣同士の値を比べて、順番が逆であれば入れ替える方法です。小さい順に並べたい場合は、隣同士を見比べながら、大きい値を少しずつ右へ動かしていきます。

例えば、1から5までの数字がランダムに並んでいる状態から、小さい順に並べ替えることを考えます。

最初に隣同士を比較します。左の値が右の値より大きければ入れ替え、正しい順番であればそのまま次の比較へ進みます。

この比較と入れ替えを端まで進めると、大きい値が少しずつ後ろへ移動します。ただし、1回の通過だけで全体が完全に整うとは限りません。

そのため、同じ手順を何度も繰り返します。入れ替えが発生しなくなれば、並べ替えは完了です。

日常で考えるなら「隣の人と比べて入れ替える」

バブルソートは、人や物を一列に並べる場面に置き換えると理解しやすくなります。たとえば、身長、番号、価格、日付など、大小を比べられるものを順番に並べる場面です。

ポイントは、全体を一気に見て判断するのではなく、隣同士だけを見て進めることです。判断する範囲が狭いため手順は分かりやすい一方、対象が増えると比較回数が多くなります。

バブルソートから学べること

バブルソートは実用上いつも効率が良い方法ではありません。しかし、条件分岐と繰り返しで処理が進む様子を理解しやすいため、アルゴリズム入門には向いています。

大切なのは、「どの値を比較しているのか」「入れ替える条件は何か」「いつ終了するのか」を分けて考えることです。この3点を意識すると、フローチャートやコードに落とし込むときにも理解しやすくなります。

シェアする