
Photo by
zakiko333
[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]
組み込み関数は偉大ですね。