バブルソート: 背比べで順番をそろえよう
バブルソートは、となり同士をくらべて、順番が逆なら入れ替える並び替えです。
中学生向けに言いかえると、体育の授業で「背の低い順に並んで」と言われたとき、となりの人と何度も背比べしながら、少しずつ正しい順番に近づけるイメージです。
背比べのルール
- 左から順番に、となり同士で背の高さをくらべる
- 左の人のほうが高ければ、場所を入れ替える
- 右端まで進むと、いちばん背の高い人が右端にたどり着く
- これを何回かくり返す
図で見る
コピペ用コード
def bubble_sort(numbers):
result = numbers[:]
for end in range(len(result) - 1, 0, -1):
for i in range(end):
if result[i] > result[i + 1]:
result[i], result[i + 1] = result[i + 1], result[i]
return result
print(bubble_sort([5, 3, 8, 1, 4]))
まとめ
バブルソートは、考え方がわかりやすい並び替えです。一方で、人数や数字が多くなると比べる回数が増えやすいので、大きなデータにはもっと速い方法を使うことがあります。