0
0

【Python】バブルソート

Posted at

概要

バブルソートは、非常にシンプルで基本的なソートアルゴリズムの1つです。隣接する要素を比較して入れ替える操作を繰り返し、データをソートします。
計算量が O(n^2) と非効率なため、大規模なデータセットには適していませんが、アルゴリズムの学習や小規模データのソートには適しています。

この記事では、Pythonでのバブルソート実装方法について説明します。

コード

以下がPythonでのバブルソートの実装例です。

def bubble_sort(arr):
    n = len(arr)
    # ここでソートが行われる
    for i in range(n):
        # すでにソートされた部分は確認しないようにする
        for j in range(0, n - i - 1):
            # 隣接する要素を比較して入れ替える
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

# サンプルの使用例
if __name__ == "__main__":
    sample_data = [64, 34, 25, 12, 22, 11, 90]
    print("ソート前:", sample_data)
    sorted_data = bubble_sort(sample_data)
    print("ソート後:", sorted_data)

実行結果

ソート前: [64, 34, 25, 12, 22, 11, 90]
ソート後: [11, 12, 22, 25, 34, 64, 90]

詳細

bubble_sort関数は、リストarrを入力として受け取り、ソートされたリストを返します。
外側のforループは、配列の長さ分ソートの処理を繰り返します。
内側のforループでは、隣接する要素を比較し、順序が逆であればそれらを入れ替えます。これにより、最大の値が徐々にリストの最後に移動します。
各反復のたびに最後にソートされた部分は無視されます(n - i - 1 の部分)。

参考

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0