728x90
개념
리스트의 가장 작은 값을 선택하여 앞으로 하나씩 가져오는 방식 (오름차순)
1. 주어진 리스트 중에 최소값을 찾음
2. 그 값을 맨 앞에 위치한 값과 교체 (패스(pass))
3. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체
버블 정렬보다 성능이 좋음
작은 배열을 정렬할 때 삽입정렬이나 선택정렬이 더 빠름
제자리 정렬에 속함
시간복잡도
(Worst Case = Best Case = Average Case)
비교 - O(n^2)
교환 - O(n)
예제 코드
void selectSort(int array[], int n)
{
int temp;
for (int i = 0; i < n - 1; ++i)
{
int index = i;
for (int j = i + 1; j < n; ++j)
{
if (array[j] < array[index])
index = j;
}
temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
'자료구조' 카테고리의 다른 글
[자료구조] Heap Sort (힙 정렬) (0) | 2021.02.12 |
---|---|
[자료구조] Merge Sort (합병 정렬) (0) | 2021.02.11 |
[자료구조] Insert Sort (삽입 정렬) (0) | 2021.02.08 |
[자료구조] Quick Sort (퀵 정렬) (0) | 2021.02.07 |
[자료구조] Bubble Sort (버블 정렬) (0) | 2021.02.06 |