================================== 풀이 ====================================
선택 정렬 : 가장 작은 값을 앞으로 이동 ( 연산횟수 : 6 번 )
int main(void) {
int data[3];
int index, min, tmp;
scanf("%d %d %d", &data[0], &data[1], &data[2]);
for (int i = 0; i < 3; i++) {
min = 1000000;
for (int j = i; j < 3; j++) {
if (min > data[j]) {
min = data[j];
index = j;
}
}
tmp = data[i];
data[i] = data[index];
data[index] = tmp;
}
for (int i = 0; i < 3; i++)
printf("%d ", data[i]);
}
버블 정렬 : 옆에 위치한 값과 비교하여 비교적 작은 값을 앞으로 이동 ( 연산횟수 : 6 번 )
int main(void) { // 2752번 문제
int data[3];
int tmp;
scanf("%d %d %d", &data[0], &data[1], &data[2]);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3-i-1; j++) {
if (data[j] > data[j + 1]) {
tmp = data[j];
data[j] = data[j+1];
data[j+1] = tmp;
}
}
}
for (int i = 0; i < 3; i++)
printf("%d ", data[i]);
}
삽입 정렬 : 기본적으로 앞에 있는 값들은 모두 정렬되어 있다고 생각하고 정렬을 시작한다. ( 연산횟수 : 2번 )
int main(void) { // 2752번 문제
int data[3];
int tmp;
scanf("%d %d %d", &data[0], &data[1], &data[2]);
for (int i = 0; i < 3; i++) {
for (int j = i; j > 0 && data[j] < data[j - 1]; j--) {
tmp = data[j];
data[j] = data[j-1];
data[j-1] = tmp;
}
}
for (int i = 0; i < 3; i++)
printf("%d ", data[i]);
}
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 10989번 문제_수 정렬 (1) | 2022.02.10 |
---|---|
[알고리즘] 백준 1431번 문제_시리얼 번호 (2) | 2022.02.10 |
[알고리즘] 백준 1181번 문제_단어 정렬 (0) | 2022.02.10 |
[알고리즘] 백준 2751번 문제_1000만개 정렬 (0) | 2022.02.10 |
[알고리즘] 백준 2750번 문제_단순 정렬 (0) | 2022.02.10 |