Cod sursa(job #429155)
| Utilizator | Data | 29 martie 2010 21:17:28 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<stdio.h>
int a[500001];
void quick (int st,int dr)
{
int i,j,aux;
int m=(st+dr)/2;
i=st; j=dr;
while (a[i]<a[m]) i++;
while (a[j]>a[m]) j--;
if (i<=j)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
i++;
j--;
}
if (st<j) quick(st,j);
if (i<dr) quick(i,dr);
}
int main ()
{
int i,n;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%d",&a[i]);
quick(1,n);
for (i=1; i<=n; i++)
printf("%d ",a[i]);
return 0;
}
