💬

【Python】選択ソートを使ってみた。

2023/05/14に公開

はじめに

選択ソートは、先頭にある値とそれ以降の値を比較し、一番小さい値を先頭に持ってくる(これを繰り返す)ソート手法です。

実装

# 選択ソート:リストの中から1番小さな数値を探す → 見つけた最小の数値と、リストの始めの数値を入れ替える → これを繰り返す
from typing import List

# 関数の定義:
def selection_sort(numbers: List[int]) -> List[int]:
    # インデックス番号の取り出し
    len_numbers = len(numbers)
    for i in range(len_numbers):
        # インデックス番号を一時的に保持しておく
        min_idx = i
        # 次のインデックス以降の要素を順に見ていく
        for j in range(i+1, len_numbers):
            # 現在保持している値より小さければ、その値のインデックス値を保持する
            if numbers[min_idx] > numbers[j]:
                min_idx = j
        # 一番小さかった値を先頭に持ってくる
        numbers[i], numbers[min_idx] = numbers[min_idx], numbers[i]
    return numbers


# テスト
if __name__ == "__main__":
    import random
    nums = [random.randint(0, 100) for i in range(10)]
    print(selection_sort(nums))

参考

https://www.udemy.com/course/python-algo

Discussion