Cod sursa(job #252812)
| Utilizator | Data | 4 februarie 2009 22:22:15 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include<stdio.h>
int a[500010],b[500010],n;
void sort(int l,int r)
{ int m=(l+r)>>1,i,j,k;
if(l==r) return ;
sort(l,m);
sort(m+1,r);
for(i=l,j=m+1,k=l;i<=m||j<=r;)
if(j>r||(i<=m&&a[i]<a[j]))
b[k++]=a[i++];
else
b[k++]=a[j++];
for(k=l;k<=r;k++)
a[k]=b[k];
}
int main()
{ freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int q;
scanf("%d",&n);
for(q=1;q<=n;q++)
scanf("%d",&a[q]);
sort(1,n);
for(q=1;q<=n;q++)
printf("%d ",a[q]);
return 0;}
