1. 알고리즘 개요
- 외워야하는 것 : 최소값의 인덱스(min)를 찾아서 정렬되지 않은 부분의 제일 앞으로 보내기
- 시간 복잡도 : $O(n^2)$
- 특징 : 교환회수가 적어서 큰 레코드를 다룰 때 적합
2. 소스코드
void selection_sort(int *arr, int size){
for(int i = 0 ; i < size ; i++){
int min = i;
for(int j = i; j < size ; j++){
// 이전에 정렬된 부분 제외하고 i부터 끝까지
if(arr[j] < arr[min]){
// 최소값을 찾았을 때
min = j;
}
}
swap(&arr[min], &arr[i]);
}
}
3. Reference
'알고리즘' 카테고리의 다른 글
정렬 (5) - 느린 정렬 알고리즘 비교 (0) | 2020.02.11 |
---|---|
정렬 (4) - 버블 정렬 (Bubble Sort) (0) | 2020.02.11 |
정렬 (3) - 삽입 정렬 (Insertion Sort) (0) | 2020.02.11 |
정렬 (1) - 개요 (0) | 2020.02.11 |
재귀 (7) - 메모이제이션 (Memoization) (1) | 2020.02.04 |
재귀 (6) - 파일 탐색 (File Finding) (0) | 2020.02.04 |
재귀 (5) - 프랙탈 트리 (Fractal Tree) (0) | 2020.02.04 |