
요즘 저는 개인적으로 정렬에 대해서 공부하고 있습니다.
정렬의 종류로는
Insert 정렬
Select 정렬
Heap 정렬
Merge 정렬
Quick 정렬
Bubble 정렬
권 정렬
그런 의미에서, 오늘은 수 정렬하기에 대해서 적어보도록 하겠습니다.

문제의 조건은 간단합니다.
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
첫째 줄에는 최대 1000까지의 수가 주어지고, 이는 앞으로 나올 정수의 개수를 의미합니다.
둘째 줄부터 앞서 입력받은 수 만큼인 N개의 줄 만큼 수가 주어집니다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이고, 수는 중복되지 않습니다.
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력하면 이 문제는 끝이 납니다.
#include <stdio.h>
#include <stdlib.h>
#define size 1001
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int getnum = 0, number;
int numlist[size] = {0, };
scanf("%d", &getnum);
for(int i = 0; i < getnum; i++) {
scanf("%d", &numlist[i]);
}
for(int j = 0; j < getnum; j++) {
for(int l = 0; l < getnum-1; l++) {
if(numlist[l] > numlist[l+1]) {
swap(&numlist[l], &numlist[l+1]);
}
}
}
for(int k = 0; k < getnum; k++) {
printf("%d\n", numlist[k]);
}
}
우선 swap 동작을 위한 사용자 정의 함수를 생성합니다.
scanf로 getnum에 앞으로 나올 정수의 개수를 받습니다. 그런 다음, for문으로 돌리면서 numlist에 수를 난수를 입력받습니다.
Insert Sorting으로 i와 i+1로 다음 배열과 비교하면서 sorting 을 진행해줍니다.
그 다음, 다시 킹갓 for문을 돌리며 numlist에 있는 sorting된 수를 출력합니다.
지난 축제 때, 권정열 1열 직관을 했습니다.
사람 뒤에서 빛이 나는걸 처음 봤습니다.
라칸 매혹 맞으면 이런 느낌일까 싶었습니다.

감사합니다.