반응형
#Selection_Sort
" 리스트의 값들 중 가장 작은 값들을 선택해 순서대로 맨 앞으로 보낸다. "
#Sudo_code
-
리스트의 길이 만큼 진행한다.
-
최소값 min 값을 처음에 무엇과 비교해도 가장 큰 값을 넣는다.
-
배열을 처음부터 탐색을 진행하면서, 해당 index에 들어 있는 값과 min 값을 비교해 계속해서 min을 최신화시켜준다.
-
한 번의 루프를 돌아 만들어진 index의 값은 최소 값 min이 들어간 값이기 때문에 리스트의 맨 앞의 값과 swap 해준다.
-
1 ~ 4번의 과정을 리스트의 길이 만큼 반복하면서 오름차순으로 정렬한다.
#Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <stdio.h>
int main(){
int i, j, min, index, temp;
int array[10] = {1, 10, 5, 8, 7, 6, 4, 3, 2, 9};
for(int i = 0; i < 10; i++){
min = 9999;
for(int j = i; j < 10; j++){
if (min > array[j]) {
index = j;
min = array[j];
}
}
temp = array[i];
array[i] = array[index];
array[index] = temp;
}
for(int i = 0; i < 10; i++)
{
printf("%d", array[i]);
}
return 0;
}
|
#Time
시간 복잡도 = O(N^2)
반응형
'알고리즘 > 정렬 (Sort)' 카테고리의 다른 글
삽입 정렬 (Insertion Sort) (0) | 2019.02.11 |
---|