概要
選択ソートは、基本的なソートアルゴリズムの一つです。選択ソートの仕組みは、リストの中で最小(または最大)の要素を見つけ、それをリストの先頭に配置し、残りの部分について同じ操作を繰り返します。
選択ソートの計算量はO(n^2)で、効率はそれほど高くありません。
この記事では、Pythonでの選択ソート実装方法について説明します。
コード
以下がPythonでの選択ソートの実装例です。
def selection_sort(arr):
n = len(arr)
# リストの全ての要素を繰り返し処理
for i in range(n):
# 残りの部分の最小値を探す
min_idx = i
for j in range(i + 1, n):
if arr[j] < arr[min_idx]:
min_idx = j
# 最小値を現在の位置にスワップ
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
# サンプルの使用例
if __name__ == "__main__":
sample_data = [64, 25, 12, 22, 11]
print("ソート前:", sample_data)
sorted_data = selection_sort(sample_data)
print("ソート後:", sorted_data)
実行結果
上記のコードを実行すると、次のような結果が得られます。
ソート前: [64, 25, 12, 22, 11]
ソート後: [11, 12, 22, 25, 64]
詳細
selection_sort関数は、リストarrを入力として受け取り、ソートされたリストを返します。
外側のforループでは、リストのすべての要素に対して操作を行います。
内側のforループでは、未ソート部分から最小の要素を見つけ、現在の位置(i)と入れ替えます。
この過程をリスト全体に対して繰り返すことで、全ての要素が昇順にソートされます。
参考