バブルソートとは?
整列アルゴリズムの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
最近のコメント