선택 정렬이란?
-> 매번 '가장 작은 것'을 선택하는 알고리즘.
-> 앞에서부터 차례대로 가장 작은 숫자로 채워나가는 기법이다.
-> 가장 작은 숫자를 만나면 그 인덱스와 기존 앞의 인덱스를 바꿔주는 방식을 사용한다.
-> 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복.
# 선택 정렬
numbers = [3, 7, 1, 9, 11, 10, 5, 4, 2]
for i in range(len(numbers)):
# 현재 위치(i)와 바꿀 가장 작은 숫자의 인덱스
min_index = i
# i까지는 이미 정렬 됐으므로 그 다음부터 검사
for j in range(i + 1, len(numbers)):
if numbers[min_index] > numbers[j]:
min_index = j
# 위치 바꿔주기
numbers[min_index], numbers[i] = numbers[i], numbers[min_index]
print(numbers)
'알고리즘 > 이론' 카테고리의 다른 글
정렬 알고리즘 시간복잡도 비교 (0) | 2022.06.22 |
---|---|
계수 정렬(Count Sort) (0) | 2022.06.22 |
퀵 정렬(Quick Sort) (0) | 2022.06.22 |
삽입 정렬(Insertion Sort) (0) | 2022.06.22 |
DFS(Depth First Search) & BFS(Breadth First Search) (0) | 2022.06.21 |