Python 選択ソート(単純比較法)

投稿者: | 2017年1月27日

[-1, 1, 3, 4, 9, 6, 2]

# !/user/bin/env python


def main():
    list = [1, 3, 4, 9, 6, 2, -1]

    for i in range(len(list) - 1):
        
        min = list[i]
        k = i
        for j in range((i+1), len(list)):
            if min > list[j]:
                min = list[j]

                k = j

        tmp = list[i]
        list[i] = list[k]
        list[k] = tmp

    print(list)


if __name__ == '__main__':
    main()

ソート前 : [1, 3, 4, 9, 6, 2, -1]

ソート後 : [-1, 1, 2, 3, 4, 6, 9]

 

[1, 3, 4, 9, 6, 2, -1]から最小値を選んで先頭から並べていく。

最小値を’ ‘で囲ってます。

[1, 3, 4, 9, 6, 2, ‘-1’] → [‘-1’, 1, 3, 4, 9, 6, 2]

[-1, ‘1’, 3, 4, 9, 6, 2] → [-1, ‘1’, 3, 4, 9, 6, 2]

[-1, 1, 3, 4, 9, 6, ‘2’] → [-1, 1, ‘2’, 3, 4, 9, 6]

[-1, 1, 2, 3, 4, 6, 9]

 

デメリットとして処理速度が遅いです。バブルソートよりは、すこし早いです。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください