Pagini recente » Cod sursa (job #2730135) | Cod sursa (job #2580926) | Cod sursa (job #2521213) | Cod sursa (job #1619977) | Cod sursa (job #1049283)
#include<cstdio>
int v[500001],n,i,c[500001];
FILE *f,*g;
void intercl(int a,int m,int b){
int i=1,j=m+1,k=a-1;
while(i<=m&&j<=b){
if(v[i]<v[j])
c[++k]=v[i++];
else
c[++k]=v[j++];
}
for(;i<=m;i++){
c[++k]=v[i];
}
for(;j<=b;j++){
c[++k]=v[j];
}
for(i=1;i<=b;i++){
v[i]=c[i];
}
}
void sorteaza(int a,int b){
if(a==b)
return;
else{
int m=(a+b)/2;
sorteaza(a,m);
sorteaza(m+1,b);
intercl(a,m,b);
}
}
int main(){
f=fopen("algsort.in","r");
g=fopen("algsort.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++){
fscanf(f,"%d",&v[i]);
}
sorteaza(1,n);
for(i=1;i<=n;i++){
fprintf(g,"%d ",v[i]);
}
fclose(f);
fclose(g);
return 0;
}