Pagini recente » Cod sursa (job #1076594) | Cod sursa (job #2488204) | Cod sursa (job #1726234) | Cod sursa (job #2469622) | Cod sursa (job #446158)
Cod sursa(job #446158)
#include<fstream.h>
int n, x[500001],y[500001];
void inter(int st,int m,int dr)
{
int i=st,j=m+1,k=st;
while(i<=m && j<=dr)
if(x[i]<y[j])y[++k]=x[i++];
else y[++k]=y[j++];
while(i=m)y[++k]=x[i++];
while(j<=dr)y[++k]=y[j++];
for(i=st;i<=dr;i++)x[i]=y[i];
}
void sort(int st,int dr)
{
if(st<dr)
{
int m=st+(dr-st)/2;
sort(st,m);sort(m+1,dr);
inter(st,m,dr);
}
}
int main()
{
fstream f("algsort.in");ofstream g("algsort.out");
int i;
f>>n;for(i=1;i<=n;i++)f>>x[i];
sort(1,n);
for(i=1;i<=n;i++)g<<x[i]<<' ';
f.close();g.close();
return 1;
}