Pagini recente » Cod sursa (job #2818800) | Cod sursa (job #1281903) | Cod sursa (job #3277597) | Cod sursa (job #1761126) | Cod sursa (job #615385)
Cod sursa(job #615385)
#include<cstdio>
#include<queue>
using namespace std;
#define NM 500001
int v[NM],p[NM];
int schimb(int st, int dr)
{
int val=v[dr],poz=st,i;
for (i=st; i<dr; ++i)
if (v[i]<val)
{
int aux=v[i];
v[i]=v[poz];
v[poz]=aux;
++poz;
}
int aux=v[dr];
v[dr]=v[poz];
v[poz]=aux;
return poz;
}
void qsort(int x, int y)
{
if (x>=y)
return;
int p=schimb(x,y);
qsort(x,p-1);
qsort(p+1,y);
}
void afis(int N)
{
for (int i=1; i<=N; ++i)
printf("%d ",v[i]);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int N;
scanf("%d",&N);
for(int i=1; i<=N; ++i)
scanf("%d",&v[i]);
qsort(1,N);
afis(N);
return 0;
}