선택정렬 (selection sort)
1. 선택 정렬 이란?
- 주어진 데이터 중, 최소값을 찾음
- 해당 최소값을 데이터 맨 앞에 위치한 값과 교체함
- 맨 앞의 위치를 뺀 나머지 데이터를 동일한 방법을 반복
직접 눈으로 보면 더 이해가 쉽다: https://visualgo.net/en/sorting
출처: https://en.wikipedia.org/wiki/Selection_sort
2. 알고리즘 구현
- 0번째 인덱스부터 마지막 -1 인덱스를 순회 ( 왜냐? 마지막 인덱스는 2번째 순회에서 보기 때문)
- 첫번째 요소를 가장 낮은 lowest 라고 할당하고, 차례대로 비교하여 lowest 를 업데이트
- 각 비교가 끝나면 맨앞으로 보냄ㅈ
1
2
3
4
5
6
7
8
def selection_sort(data):
for index in range(len(data)-1):
lowest = index
for index2 in range(index + 1, len(data)):
if data[lowest] > data[index2]:
lowest = index2
data[index], data[lowest] = data[lowest], data[index]
return data