/*
#include<stdio.h>
int f(int n)
{
if(n==0)
{
return;
}
if(f(n-1)%2==0)
{
return n;
}
}
*/
/*
#include<stdio.h>
int main()
{
int arr[10000]={};
int n,i,pct=0;
scanf("%d",&n);
for(i=1;;i++)
{
arr[i] = n%2;
n/=2;
if(n==0) break;
}
for(;i>=1;i--)
{
printf("%d",arr[i]);
}
return 0;
}
재귀함수 1. 종료조건. 2.재귀호출
#include<stdio.h>
void f(int n)
{
if(n==0)
{
return ;
}
f(n/2);
printf("%d",n%2);
}
int main()
{
int n;
scanf("%d",&n);
if(n==0)
{
printf("0");
}
else
{
f(n);
}
}
정렬
1.버블정렬
2.선택정렬
3.삽입정렬
----------느려 (중첩반복문)
4.퀵정렬
----------빨라 (재귀)
*/
#include <stdio.h>
int a[10001];
int n;
void q_s(int s,int e)
{
int pivot=s;
int low=s,high=e;
while(a[pivot]>a[low])
{
low++;
}
while(a[pivot]<a[high])
{
high--;
}
if(low<high)
{
temp=a[high];
a[high]=a[low];
a[low]=temp;
}
}
int main()
{
int i;
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
q_s(1,n);
}