バブルソートアルゴリズムを使用した整数の配列のソート方法


以下に、バブルソートアルゴリズムを使用して整数の配列をソートするための関数の例を示します。

def bubble_sort(arr):
    n = len(arr)

    for i in range(n - 1):
        # パスの開始時にフラグを初期化
        swapped = False

        for j in range(n - i - 1):
            if arr[j] > arr[j + 1]:
                # 隣接する要素を交換
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                # 交換が行われた場合はフラグをTrueに設定
                swapped = True

        # 交換が行われなかった場合、配列は既にソート済みとみなして終了
        if not swapped:
            break

    return arr

この関数では、配列の要素数を取得し、外側のループでパスの数を制御します。内側のループでは、隣接する要素を比較し、必要に応じて交換します。交換が行われた場合は、フラグをTrueに設定します。パスの終了時に交換が行われなかった場合、配列は既にソート済みとみなして処理を終了します。

上記の関数を使用して、以下のように整数の配列をソートすることができます。

arr = [5, 2, 8, 1, 9]
sorted_arr = bubble_sort(arr)
print(sorted_arr)  # 結果: [1, 2, 5, 8, 9]

このように、バブルソートアルゴリズムは非常にシンプルで理解しやすい方法ですが、大きなデータセットに対しては効率が悪いため、効率的なソートアルゴリズムを使用することをお勧めします。