프로그래밍/C
C언어 - 기본 정렬 알고리즘들(버블, 삽입, 선택)
꿈꾸는 사람_Anthony
2021. 9. 1. 22:49
반응형
자꾸만 까먹는다..
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main() {
int n, tmp, j;
scanf("%d", &n);
int li[100] = { 0, };
if(n<100) for (int i = 0;i < n;i++) scanf("%d", &li[i]);
//선택
for (int i = 0;i < n - 1;i++) {
for (int j = i + 1;j < n;j++) {
if (li[j] < li[i]) {
tmp = li[j];
li[j] = li[i];
li[i] = tmp;
}
}
}
//버블
for (int i = 0;i < n - 1;i++) {
for (int j = 0;j < n - i - 1;j++) {
if (li[j] > li[j + 1]) {
tmp = li[j];
li[j] = li[j + 1];
li[j + 1] = tmp;
}
}
}
//삽입
for (int i = 0;i < n;i++) {
tmp = li[i];
for (j = i-1;j >= 0 && li[j] > tmp;j--) li[j + 1] = li[j];
li[j+1] = tmp; //이때 j는 -1혹은 li[j]<tmp인 것의 인덱스를 가진다.
}
for (int i = 0;i < n;i++) printf("%d", li[i]);
}
반응형