0
0

More than 3 years have passed since last update.

pythonで選択ソートを実装してみた

Last updated at Posted at 2020-02-11

pythonとアルゴリズムの勉強かねがね、選択ソートを実装してみました。

1.ランダムなリストを作成する
例:
[1,3,0,4,2]

2.操作対象リストの中で最小の値を探す
例:
[1,3,0,4,2]→0が最小

3.一番左を0と入れ替えて、0は操作完了にする

[1,3,0,4,2]→[0,3,1,4,2]

-次は左から二番目、その次は三番目…と順に対象にして2.と3.を繰り返す-

[1,3,0,4,2]
[0,3,1,4,2]
[0,1,3,4,2]
[0,1,2,4,3]
[0,1,2,3,4]

…という処理を選択ソートと呼ぶらしいです。

select_sort.py

import random

# 準備する値の数を入力
numbers = 10

# チェック済の値を格納するリストの作成
pop_list = []

# 乱数の作成
num_list = list(range(numbers))
random.shuffle(num_list)

def _select_min(num_list, pos):

    _min = None
    _left = num_list[pos]
    _pos = 0

    for i in range(pos, len(num_list)):
        if _min == None or _min > num_list[i]:
            _min = num_list[i]
            _pos = i

    num_list[pos] = _min
    num_list[_pos] = _left

    return(num_list)

# メイン処理
print("START : ",num_list)
for i in range(len(num_list)):
    num_list = _select_min(num_list, i)
print("GOAL  : ",num_list)

0
0
2

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