Pythonのバブルソート
各走査で大きい値が末尾方向へ移動します。
Pythonのバブルソートとは?
各走査で大きい値が末尾方向へ移動します。
隣接要素を繰り返し交換して整列します。
どのような場面で使う?
- アルゴリズムとデータ構造を理解する。
- 各ステップと境界ケースを確認する。
- 実行時間とメモリ使用量を比較する。
Pythonのバブルソートのビジュアライザー
O(n²)再生またはステップを使って、比較とデータ移動を順に確認できます。
サンプルコード
main.py
def bubble_sort(values):
result = values.copy()
for end in range(len(result) - 1, 0, -1):
swapped = False
for index in range(end):
if result[index] > result[index + 1]:
result[index], result[index + 1] = result[index + 1], result[index]
swapped = True
if not swapped:
break
return result
print(bubble_sort([5, 1, 4, 2, 8]))
期待される出力
[1, 2, 4, 5, 8]
仕組み
順序が逆の隣接ペアを交換します。O(n²)のため主に学習用途です。
値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。
練習問題
入力値と境界ケースを変更し、より大きなデータでも動作を確認してください。
- 空入力、1要素、重複値を試す。
- 各ステップの状態を表示する。
- 別の解法と性能を比較する。