/*
#include <stdio.h>
int arr[1000000]={};
void bs(int left, int right, int value)
{
int mid=(left+right)/2;
if(left>right)
{
printf("-1 ");
return;
}
if(arr[mid]==value)
{
printf("%d ", mid);
return;
}
else if(arr[mid]>value)
{
bs(left, mid-1, value);
}
else if(arr[mid]<value)
{
bs(mid+1, right, value);
}
}
int main()
{
int n, m, i, j, mid, p;
scanf("%d", &n);
for(i=1;i<=n;i++)
{
scanf("%d", &arr[i]);
}
scanf("%d", &m);
for(j=0;j<m;j++)
{
scanf("%d", &p);
bs(1, n, p);
}
return 0;
}
*/
/*
#include<stdio.h>
int arr[100000]={};
void bs(int l, int r, int v)
{
int mid=(l+r)/2;
if(l>r)
{
printf("%d", r+1);
return;
}
if(arr[mid]==v&&arr[mid-1]<v)
{
printf("%d", mid);
return;
}
else if(arr[mid]<v)
{
bs(mid+1, r, v);
}
else if(arr[mid]>=v)
{
bs(l, mid-1, v);
}
}
int main()
{
int n, k, i;
scanf("%d %d", &n, &k);
for(i=1;i<=n;i++)
{
scanf("%d", &arr[i]);
}
bs(1, n, k);
return 0;
}
느리지만 간단 : 버블, 선택, 삽입 ..
빠르지만 복잡 : 퀵, 병합, 힙, 기수,,,,
#include<stdio.h>
#include <stdlib.h>
int arr[100000]={};
//void quick_sort(int l, int r)
//{
// int pivot = l;
// if(l>=r) return ; //데이터가 1개 이하일때 더이상 정렬 x
//
// // arr[pivot]이하의수 ... arr[pivot] ...arr[pivot] 이상의 수
// quick_sort(l,pivot-1);
// quick_sort(pivot+1,r);
//}
//int a = 10; a : 정수값 저장
//int* pa = &a : 정수 변수의 주소 저장
int compare(int* pa, int* pb)
{
if(*pa > *pb) return 1; // 오름차순
else return -1;
}
int main()
{
int n, k, i;
scanf("%d", &n);
for(i=1;i<=n;i++)
{
scanf("%d", &arr[i]);
}
// quick_sort(1,n); //직접 만들기
//qsort(정렬을 시작할 곳의 주소, 정렬할 데이터 갯수, 정렬할 데이터의 크기, 정렬 기준 함수 )
qsort(&arr[1], n, sizeof(int), compare);
for(i=1;i<=n;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
*/
/*
#include<stdio.h>
#include<stdlib.h>
int arr[100000];
int compare(int *pa, int *pb)
{
if(*pa>*pb)
{
return 1;
}
else
{
return -1;
}
}
int main()
{
int n, i;
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d", &arr[i]);
}
qsort(&arr[1], n, sizeof(int), compare);
for(i=1; i<=n; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
순차탐색 -> 이분탐색
버블정렬 -> 퀵정렬
*/
#include<stdio.h>
#include<stdlib.h>
arr[50000]={};
int compare(int *pa, int *pb)
{
if(*pa>*pb)
{
return 1;
}
else
{
return -1;
}
}
int main()
{
int n, i;
scanf("%d", &n);
for(i=0;i<n;i++)
{
scanf("%d", arr[i]);
}
return 0;
}