Cod sursa(job #270687)
Utilizator | Data | 4 martie 2009 13:21:37 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include<stdio.h>
#define nmax 500001
int a[nmax],n;
void sort(int st,int dr)
{
int poz=st-1;
for(int i=st;i<=dr;++i)
if (a[i]<=a[dr])
{
int aux=a[i];
a[i]=a[++poz];
a[poz]=aux;
}
if (st < poz-1) sort(st,poz-1);
if (poz+1 < dr) sort(poz+1,dr);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&a[i]);
sort(1,n);
for(int i=1;i<=n;++i)
printf("%d ",a[i]);
printf("\n");
return 0;
}