March 26, 2021
원소가 들어갈 자리는 이미 정해져 있고, 그 자리에 넣을 원소를 선택하는 알고리즘
Algorithm Selection_Sort(A):
input: array
for i = 1 to A.lenth:
//find index of min value
min_index = i
min_value = A[i]
for j = i + 1 to A.length:
if A[j] < min_value:
min_index = j
min_value = A[j]
//swap A[i] and A[min_index]
tmp = A[i]
A[i] = A[min_index]
A[min_index] = tmp
외부 루프가 n-1회 도는 동안 각 루프마다 비교 연산이 n-1, n-2, … , 2, 1회 일어난다. 결과적으로 총 비교 연산은 회 일어난다.
스왑 연산은 최악의 경우 회 일어나므로, 전체 시간 복잡도는 O()이다.
def selection_sort(array):
for i in range(len(array)):
min_index = i
min_value = array[i]
for j in range(i+1, len(array)):
if array[j] < min_value:
min_index = j
min_value = array[j]
array[i], array[min_index] = array[min_index], array[i]