LoginSignup
0
0

More than 1 year has passed since last update.

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

Posted at

はじめに

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

実装

# 選択ソート:リストの中から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))

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0