Pagini recente » Cod sursa (job #1238657) | Cod sursa (job #2302971) | Cod sursa (job #2478235) | Cod sursa (job #1174437) | Cod sursa (job #751669)
Cod sursa(job #751669)
#include<stdio.h>
#define dim 500020
FILE*f=fopen("algsort.in","r");
FILE*g=fopen("algsort.out","w");
int V[dim],H[dim],i,n,k;
void interclasare(int st, int mij, int dr){
int xa=st,xb=mij+1;
k=0;
while(xa<=mij&&xb<=dr){
if(V[xa]<V[xb])
H[++k]=V[xa],xa++;
else
H[++k]=V[xb],xb++;
}
while(xa<=mij)
H[++k]=V[xa],xa++;
while(xb<=dr)
H[++k]=V[xb],xb++;
for(i=st;i<=dr;i++)
V[i]=H[i-st+1];
}
void merge(int st, int dr){
if(st!=dr){
int mij=(st+dr)/2;
merge(st,mij);
merge(mij+1,dr);
interclasare(st,mij,dr);
}
}
int main(){
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&V[i]);
merge(1,n);
for(i=1;i<=n;i++)
fprintf(g,"%d ",V[i]);
return 0;
}