Cod sursa(job #588383)
| Utilizator | Data | 7 mai 2011 20:02:37 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<fstream.h>
#define N 500000
long v[N],n,y[N],i;
void merge(long v[N],long p,long q)
{long m=(p+q)/2,i,j,k,t;
if(p==q)
return;
merge(v,p,m);
merge(v,m+1,q);
for(i=p,j=m+1,k=p;i<=m||j<=q;)
if(j>q||(i<=m&&v[i]<v[j]))
y[k++]=v[i++];
else
y[k++]=v[j++];
for(t=p;t<=q;t++)
v[t]=y[t];}
int main()
{ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=0;i<n;i++)
f>>v[i];
merge(v,0,n-1);
for(i=0;i<n;i++)
g<<v[i]<<" ";
f.close();
g.close();
return 0;}
