見出し画像

[Python]選択ソートvs組み込み関数ソート

1.選択ソートvs組み込み関数ソート

組み込み関数によるソートと選択ソートによるソートってどっちが早いのか検証してみました。ランダムに生成された10個の整数をそれぞれソートし、かかった時間を比較します。

2.コード

from random import randint
from time import time

#リスト内の最小値インデックスを見つける関数
def find_min(list_):
    #とりあえず0番目の値を最小値に設定
    min = list_[0]
    #とりあえず最小値のインデックスを0に指定
    min_index = 0
    for i in range(len(list_)):
        if min > list_[i]:
            min = list_[i]
            min_index = i
    return min_index

#選択ソート
def select_sort(list_):
    #ソート済み配列
    sorted_list = []
    while len(list_) > 0:
        min_index = find_min(list_)
        min_value = list_.pop(min_index)
        sorted_list.append(min_value)
    return sorted_list

if __name__ == "__main__":
    unsorted_list = [randint(1, 10) for _ in range(10)]
    print(f"未ソートリスト:{unsorted_list}\n")
    #選択ソート
    sel_start_time = time()
    sorted_list = select_sort(unsorted_list.copy())
    sel_end_time = time()
    #組み込み関数ソート
    built_start_time = time()
    sorted_list_built = sorted(unsorted_list.copy())
    built_end_time = time()
    print(f"選択ソート済:{sorted_list}\n経過時間{(sel_end_time - sel_start_time)}[s]\n")
    print(f"組み込み関数によるソート:{sorted_list_built}\n経過時間{(built_end_time - built_start_time)}[s]")

3.実行結果

未ソートリスト:[4, 10, 7, 10, 2, 3, 9, 8, 3, 4]

選択ソート済:[2, 3, 3, 4, 4, 7, 8, 9, 10, 10]
経過時間2.2172927856445312e-05[s]

組み込み関数によるソート:[2, 3, 3, 4, 4, 7, 8, 9, 10, 10]
経過時間2.6226043701171875e-06[s]

組み込み関数は偉大ですね。


この記事が気に入ったらサポートをしてみませんか?