バブルソートを実装してみます。
概要
バブルソート (bubble sort) は、ソートのアルゴリズムの一つ。隣り合う要素の大小を比較しながら整列させること。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、また並列処理との親和性が高いことから、しばしば用いられる。安定な内部ソート。基本交換法、隣接交換法ともいう[ 1 ] 。(単に交換法と言う場合もある)
バブルソート – Wikipedia
サンプルコード
import random
data_len = 10
data = random.sample(range(1, 42), data_len)
print(data)
def bubble_sort(collection):
length = len(collection)
for i in range(length - 1):
swapped = False
for j in range(length - 1 - i):
if collection[j] > collection[j + 1]:
swapped = True
collection[j], collection[j +
1] = collection[j + 1], collection[j]
if not swapped:
break
print(collection)
return collection
bubble_sort(data)
実行結果(例)
[27, 4, 36, 14, 17, 5, 11, 9, 10, 22]
[4, 27, 14, 17, 5, 11, 9, 10, 22, 36]
[4, 14, 17, 5, 11, 9, 10, 22, 27, 36]
[4, 14, 5, 11, 9, 10, 17, 22, 27, 36]
[4, 5, 11, 9, 10, 14, 17, 22, 27, 36]
[4, 5, 9, 10, 11, 14, 17, 22, 27, 36]