インタラクティブ バブルソート (WebGL / Three.js)

300 ms

状態: アイドル

比較回数: 0

交換回数: 0

現在のステップ: -

バブルソートとは?

バブルソートは、隣接する要素を比較し、順序が間違っていれば交換する操作を繰り返す単純なソートアルゴリズムです。リストの末尾から最大の要素が「泡(バブル)」のように浮き上がってくるように見えます。

色分け:
通常 比較中 交換中 ソート済み

コード実行状況


def bubble_sort(arr):
    n = len(arr)
    # n 回のパスを実行 (最適化のため早期終了あり)
    for i in range(n):
        swapped = False
        # 各パスで隣接要素を比較 (末尾のソート済み要素は除く)
        for j in range(0, n - i - 1):
            # 現在の要素と次の要素を比較
            if arr[j] > arr[j + 1]:
                # 要素が逆順なら交換
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                swapped = True
        # このパスで交換がなければ、ソート完了
        if not swapped:
            break # ループを抜ける
    # ソート済み配列 (この関数では返さないが...)
    # return arr
                

コード説明

コントロールボタンでソートを開始してください。