バブルソート(英: bubble sort)は、隣り合う要素の大小を比較しながら整列させるソートアルゴリズム。 アルゴリズムが単純で実装も容易である一方、最悪時間計算量は O(n2) と遅いため、一般にはマージソートやヒープソートなど、より最悪時間計算量の小さな(従って高速な)方法が利用される。 また、安定な内部ソートであり、並列計算との親和性が高いという利点もある。 基本交換法、隣接交換法[1]あるいは単に交換法とも呼ばれる。「バブルソート」という呼称自体はケネス・アイバーソンの1962年の著書 “A Programming Language” に由来すると考えられる[2]。 バブルソートにおける要素の移動例を示した図 全ての要素に関して、隣接する要素と比較し順序が逆であれば入れ替える。これを要素数-1回繰り返すことでソートを行う。なおこの繰り返しは、入れ替えが起こらなくなった時点で(そ