×
科目A|アルゴリズムとプログラミング

選択ソート | 応用情報技術者試験

選択ソートとは

選択ソート(Selection Sort)とは、データ群を並び替えるアルゴリズムの一つで、データの中から「最小値(または最大値)」を見つけ出し、それを未整列の部分の先頭と入れ替える操作を繰り返す手法です。「最小値を選択して前に持ってくる」というルールをシンプルに繰り返すことで、配列の左側から順番に整列されたデータが確定していきます。

具体例

トランプのカードがバラバラに置かれているとき、その中から一番数字の小さいカードを目で探して(選択して)一番左側に置きます。次に、残りのカードから一番小さいカードを探してその右隣に置く、という作業を最後の1枚になるまで繰り返す方法です。
# 選択ソートのプログラム例
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] # 最小値と入れ替え

もう少し詳しく