Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでバブルソートを実装する方法をわかりやすく解説

この記事では、代表的なソートアルゴリズムの一つである「バブルソート(Bubble Sort)」をPythonで実装する方法について詳しく解説します。

下図は、このアルゴリズムがどのように動作するかを示したものです。

Pythonでバブルソートを実装する方法をわかりやすく解説

アルゴリズムの手順

  • 先頭の要素(インデックス = 0)から開始し、現在の要素と配列内の次の要素を比較します。

  • 現在の要素が次の要素より大きい場合、両者を入れ替えます。

  • 現在の要素が次の要素より小さい場合は、そのまま次の要素へ移動します。

この手順を、配列全体がソートされるまで繰り返します。

それでは、実際の実装を見てみましょう。

サンプルコード

def bubbleSort(ar):
    n = len(ar)
    # 配列の全要素を走査
    for i in range(n):
        # 末尾のi個の要素はすでに正しい位置に配置済み
        for j in range(0, n-i-1):
            # 現在の要素が次の要素より大きい場合は入れ替え
            if ar[j] > ar[j+1]:
                ar[j], ar[j+1] = ar[j+1], ar[j]

# 動作確認用のコード
ar = ['t','u','t','o','r','i','a','l']
bubbleSort(ar)
print("Sorted array is:")
for i in range(len(ar)):
    print(ar[i])

出力結果

Sorted array is:
a
i
l
o
r
t
t
u

まとめ

この記事では、Python 3.xにおけるバブルソートの基本的な考え方と実装方法について学びました。バブルソートは隣接する要素同士を比較しながら入れ替えていく、非常にシンプルで理解しやすいアルゴリズムです。

ただし、平均・最悪計算量がともに O(n²) となるため、大規模なデータセットには不向きです。そのため、プログラミング学習や小規模データのソートといった場面で活用するとよいでしょう。

  1. 【Python入門】線形探索(リニアサーチ)の仕組みと実装方法

    本記事では、最も基本的な探索アルゴリズムである「線形探索(リニアサーチ)」の仕組みと、Python 3.xでの実装方法について詳しく解説します。 線形探索とは 線形探索は、配列(リスト)の先頭から順番に要素を一つずつ調べ、目的の値と一致するかどうかを確認していくシンプルな探索手法です。データがソートされていなくても利用できるため、小規模なデータや整列されていないデータを扱う際に手軽で便利です。 アルゴリズムの手順 1. 配列 arr[] の左端(先頭)の要素から順に、目的の値 x と各要素を比較していく 2. x がいずれかの要素と一致した場合、そのインデックス(位置)を返す 3. 配列の最後

  2. Pythonで学ぶ挿入ソート(Insertion Sort)の仕組みと実装方法

    この記事では、Python 3.xにおける挿入ソート(Insertion Sort)の基本的な考え方と、実際のコードによる実装方法をわかりやすく解説します。 挿入ソートのアルゴリズム 挿入ソートは、配列を「整列済みの部分」と「未整列の部分」に分け、未整列の要素を一つずつ取り出して、整列済み部分の正しい位置に挿入していくシンプルなソート手法です。処理の手順は以下の通りです。 1. 各反復ごとに整列済みの配列を少しずつ拡大しながら、入力要素を走査する。 2. 現在の要素(キー)を、整列済み配列内の最大値と比較する。 3. キーがその最大値より大きければ、要素はそのままの位置に置かれ、 次の要