/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("애도");
return 0;
}
-2147483648
~2147483647
*/
/*
#include <stdio.h>
int a[1000001];
int t;
int bs(int s, int e, int k)
{
int mid=(s + e)/2;
if(s>e){
return -1;
}
if (a[mid] == k){
return mid;
}
else if (a[mid] < k){
return bs(mid+1, e, k);
}
else{
return bs(s, mid-1, k);
}
}
int main()
{
int s, v, i;
scanf("%d", &s);
for (i = 1; i <= s; i++){
scanf("%d", &a[i]);
}
scanf("%d", &v);
for (i = 1; i <= v; i++){
scanf("%d", &t);
printf("%d ", bs(1, s, t));
}
return 0;-
*/
/*
#include <stdio.h>
int a[100001]={};
int bs(int s, int e, int h)
{
int mid=(s + e)/2;
if(s>e)
{
return e+1;
}
if (a[mid] == h){
if(s<=h){
return bs(s, mid-1, h);
}
else{
return mid;
}
}
else if (a[mid] < h){
return bs(mid+1, e, h);
}
else{
return bs(s, mid-1, h);
}
}
int main()
{
int s, v, i;
scanf("%d %d", &s, &v);
for(i=1; i<=s; i++){
scanf("%d", &a[i]);
}
printf("%d ", bs(1, s, v));
return 0;
}
easy but slow... (버블, 선택, 삽입 )
hard but fast !!! (퀵, 병합, 기수, , ,,, )
퀵정렬
1. 직접 구현
2. 미리 만들어놓은 함수 사용법
무난한 정렬 -> 버블
개수가 너무많아 시간초과 -> 퀵정렬이 필요해??
#include <stdio.h>
#include <stdlib.h>
int a[10001];
int n, i, j, temp;
int compare(int* pa, int* pb)
{
// 1 or 0 을 리턴하는 함수
if ( *pa > *pb) return 1;
else return 0;
}
int main()
{
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
qsort(&a[1], n, sizeof(int), compare);
// qsort(배열의첫번째원소의주소, 배열 갯수, 한 원소의 크기, 정렬기준함수)
for (i = 1; i <= n; i++)
printf("%d\n", a[i]);
return 0;
}
순차탐색 ->이진탐색
버블정렬 ->퀵정렬
*/
/*
#include <stdio.h>
#include <stdlib.h>
int a[100001]={};
int compare(int* pa, int* pb)
{
if(*pa > *pb){
return 1;
}
else{
return 0;
}
}
int main()
{
int s, i;
scanf("%d", &s);
for(i=1; i<=s; i++){
scanf("%d", &a[i]);
}
qsort(&a[1], s, sizeof(int), compare);
for(i=1; i<=s; i++){
printf("%d\n", a[i]);
}
return 0;
}
*/
#include <stdio.h>
#include <stdlib.h>
int a[50001]={};
int compare(int* pa, int* pb)
{
if(*pa > *pb){
return 1;
}
else{
return 0;
}
}
int main()
{
int s, i;
scanf("%d", &s);
for(i=1; i<=s; i++){
scanf("%d", &a[i]);
}
qsort(&a[1], s, sizeof(int), compare);
for(i=1; i<=s; i++){
printf("%d ", a[i]);
}
return 0;
}