アルゴリズム理論-選択ソート
3866 ワード
ソートの選択
上の写真を見ると、現在の数字と他の数字を順番に比較して、位置を変えることが確認できます。次のコードを確認して理解しましょう。
#선택 정렬
def select_sort(list_num):
for i in range(0, len(list_num) - 1): # 마지막 index는 비교할 대상이 없음.
min_idx = i # 탐색 과정에서 가장 작은 값을 찾아 현재 인덱스와 바꿔줄 변수를 초기화.
for j in range(i + 1, len(list_num)): #두 번째 인덱스부터 끝까지 탐색.
if list_num[j] < list_num[min_idx]: # 현재 인덱스의 값과 다음 인덱스들인 list_num[j]의 값을 비교해 최소값을 찾아 min_idx에 저장한다.
min_idx = j
list_num[i], list_num[min_idx] = list_num[min_idx], list_num[i] # 순회 후에 가장 작은 인덱스의 값과 현재 인덱스를 바꿔준다.
return list_num
print(select_sort([2, 4, 5, 1, 3, 4, 7, 30]))
*ソートを選択するとソートされますが、その都度リスト内の位置が変わることはないので、効率はBubbleソートより良いのですが、二重重複文でソートされるので時間的複雑度はO(N^2)です。
Reference
この問題について(アルゴリズム理論-選択ソート), 我々は、より多くの情報をここで見つけました https://velog.io/@code_alpaca/알고리즘-이론-선택-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol