Pagini recente » Cod sursa (job #798328) | Cod sursa (job #407370) | Cod sursa (job #2277446) | Cod sursa (job #393495) | Cod sursa (job #340963)
Cod sursa(job #340963)
#include<iostream>
using namespace std;
#define dim 500001
int a[dim], b[dim];
void mergesort(int li, int ls)
{
int jum, i, j,k;
if(li==ls) return ;
jum=(li+ls)/2;
mergesort(li,jum);
mergesort(jum+1,ls);
i=li; j=jum+1; k=li;
while( (i<=jum) || (j<=ls) )
{
if( (j>ls) || ( (i<=jum) &&(a[i]<a[j]) ) )
{
b[k]=a[i];
i++;
k++;
}
else
{
b[k]=a[j];
j++;
k++;
}
}
for(i=li;i<=ls;i++)
a[i]=b[i];
}
int main()
{
int i,n;
FILE *f=fopen("algsort.in","r"), *g=fopen("algsort.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&a[i]);
mergesort(1,n);
for(i=1;i<=n;i++)
fprintf(g,"%d ",a[i]);
fprintf(g,"\n");
fclose(f);
fclose(g);
}