以下に、バブルソートアルゴリズムを使用して整数の配列をソートするための関数の例を示します。
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]
このように、バブルソートアルゴリズムは非常にシンプルで理解しやすい方法ですが、大きなデータセットに対しては効率が悪いため、効率的なソートアルゴリズムを使用することをお勧めします。