バブルソートとは?ソートアルゴリズム解説その1

バブルソートとは?

整列アルゴリズムの1つで、
隣り合うデータ同士の比較と交換を繰り返していきデータを整列する方法です。

上記のように、

データを昇順に並べ替えるときに、
一番大きいデータから右側に順に整列されていきます。

その様子が泡が浮き上がって見えることから、
“バブル”ソートと名付けられました。

具体的なアルゴリズム

バブルソートのアルゴリズムは以下です。

①データ全体を未整列データとする
②基準値を左端にセットする
③基準値とその1つ右のデータを比較する
④基準値の方が大きい場合は交換する
⑤基準値を1つ右に移動して③に戻る
 →基準値が未整列データの右端に来たら
  基準値を整列済みデータにして
  ②に戻る
⑥左端以外が整列済みデータになるまで
 ②~⑤を繰り返す

データ数5つで、
上記手順で整列する例を動画で見てみましょう。

Pythonでの実装例

以下、Pythonでの実装例です

import random

arrayLength = 12
arrayList = list(range(1,arrayLength+1))
arrayList = random.sample(arrayList, len(arrayList))
print(arrayList)
coolCount = 1

while coolCount < arrayLength:

    for idx in range(arrayLength - coolCount):
        print(arrayList)
        if arrayList[idx] > arrayList[idx+1]:
            arrayList[idx], arrayList[idx+1] = arrayList[idx+1], arrayList[idx]

    print(arrayList)
    coolCount+=1