자료구조 알고리즘
선택정렬 알고리즘
진호우
2022. 6. 22. 14:40
정렬이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것
선택 정렬(selection sort)은 제자리정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.
- 주어진 리스트 중에 최소값을 찾는다.
- 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).
- 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으로 정렬하는 데에는 Θ(n2) 만큼의 시간이 걸린다.
선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있다.
선택 정렬 애니메이션

def selectionSort(x):
for i in range(len(x)):
min_index = i
for j in range(i+1, len(x)):
if x[min_index] > x[j]:
min_index = j
x[i], x[min_index] = x[min_index], x[i]
return x