Pythonアルゴリズム

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. 空入力、1要素、重複値を試す。
  2. 各ステップの状態を表示する。
  3. 別の解法と性能を比較する。
Python IDEで実行 →