출처: https://www.acmicpc.net/problem/2751
//qsort함수
#include <stdio.h>
#include <stdlib.h>
#define MAX 1000000
int values[MAX];
int compare(const void* a, const void* b)
{
return *(int*)a - *(int*)b; //첫번째 원소가 더 크면 양수반환,더 작으면 음수반환, 같으면 0 (오름차순)
}
int main()
{
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &values[i]);
}
qsort(values, n, sizeof(int), compare);
//정렬할 배열,원소개수,각원소의크기,비교함수
for (int i = 0; i < n; i++)
printf("%d\n", values[i]);
}
> return *(int*)a - *(int*)b; 을 return *(int*)b - *(int*)a; 로 바꾸면 당연히 내림차순 정렬로 바뀝니다.
> 정답으로 맞긴 했다만 실행시간이 왜 이렇게 오래 걸리는지는 잘 모르겠네요.. 아직 메모리에 대한 공부는 전혀 되어있지 않아서 그런듯..ㅠ
'Problem Solving > 백준' 카테고리의 다른 글
[백준] 2523번: 별 찍기 - 13 (0) | 2020.03.15 |
---|---|
[백준] 1436번 : 영화감독 숌 (0) | 2020.02.29 |
[백준] 1932번 : 정수 삼각형 (0) | 2020.02.25 |
[백준] 10773번 : 제로 (0) | 2020.02.24 |
[백준] 10828번 : 스택 (0) | 2020.02.24 |