반응형
코드를 보기 전에: 이 문제는 퀵 정렬 함수를 이용해서 문제를 풀 수 있다.
정렬 함수에는 많은 정렬이 있지만, 버블 정렬, 삽입 정렬은 배열 하나하나를 바꾸는 것이기 때문에 시간이 초과된다.
퀵 정렬 함수 정리:https://solution-is-here.tistory.com/30
코드:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <stdio.h>
#include <stdlib.h>
int num[1000000];
int compare(const void *a, const void *b) // 필자의 블로그에 있는 퀵정렬 함수 정리를 보면 된다.
{
int num1 = *(int *)a;
int num2 = *(int *)b;
if (num1 < num2)
return -1;
if (num1 > num2)
return 1;
return 0;
}
int main()
{
int n;
scanf("%d", &n);
for (int a = 0; a < n; a++)
{
scanf("%d", &num[a]);
}
qsort(num, n, sizeof(int), compare); // (정렬할 배열, 요소개수, 요소크기, 비교함수)
for (int i = 0; i < n; i++)
{
printf("%d\n", num[i]);
}
return 0;
}
|
cs |
반응형