バブルソート(Bubble Sort)は、別名「交換法」とも呼ばれる、最もシンプルで直感的な整列(ソート)アルゴリズムの一つです。処理の基本は、配列の端(例えば末尾)から隣り合う要素同士を比較し、順序が逆(昇順ソートであれば、左 > 右)の場合にその2つを入れ替える(スワップする)という操作です。これを配列の先頭に向かって繰り返していくと、1周(1パス)終わった時点で、配列内の最小値(または最大値)が一番端(先頭)に「泡(バブル)が浮かび上がるように」移動して確定します。このパスを、確定していない残りの要素に対して繰り返すことで、全体を整列させます。実装は非常に容易ですが、データ数をNとしたとき、比較回数は常に N(N-1)/2 回となり、最悪および平均の時間計算量は O(N^2) となります。データ数が増えると著しく処理時間が長くなるため、実用的なプログラムで大規模なデータをソートする用途には適していません。一方で、同じ値の要素の前後関係がソート前後で変化しない「安定ソート」であるという性質を持っています。
試験でのポイント