Pagini recente » Cod sursa (job #256443) | Cod sursa (job #1621779) | Cod sursa (job #1138543) | Cod sursa (job #1510445) | Cod sursa (job #340964)
Cod sursa(job #340964)
#include<stdio.h>
#define dim 500001
using namespace std;
int a[dim],b[dim];
void merge_s(int li, int ls)
{int jum,i,j,k;
if(li==ls) return;
jum=(li+ls)/2;
merge_s(li,jum);
merge_s(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 n,i;
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]);
merge_s(1,n);
for(i=1;i<=n;i++)
fprintf(g,"%d ",a[i]);
fprintf(g,"\n");
return 0;
}