Cod sursa(job #606072)
Utilizator | Enal Gemaledin Blaugranas | Data | 3 august 2011 12:43:23 |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 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;
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(i=p;i<=q;i++)
v[i]=y[i];}
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]<<" ";
return 0;}