Pagini recente » Cod sursa (job #692757) | Cod sursa (job #1775333) | Cod sursa (job #410544) | Cod sursa (job #73526) | Cod sursa (job #2195725)
#include <stdio.h>
#include <stdlib.h>
void ic(int st, int dr);
int v[500002], aux[500002];
void dei(int st, int dr){
int m;
if(st==dr)
return;
m=(st+dr)/2;
dei(st, m);
dei(m+1, dr);
ic(st, dr);
}
void ic(int st, int dr){
int m, i, j, k;
m=(st+dr)/2;
i=st;
k=st;
j=m+1;
while(i<=m && j<=dr){
if(v[i]<=v[j])
aux[k++]=v[i++];
else
aux[k++]=v[j++];
}
while(i<=m)
aux[k++]=v[i++];
while(j<=dr)
aux[k++]=v[j++];
for(k=st;k<=dr;k++)
v[k]=aux[k];
}
int main(){
FILE *fin, *fout;
int n, i;
fin=fopen("algsort.in", "r");
fout=fopen("algsort.out", "w");
fscanf(fin, "%d", &n);
for(i=0;i<n;i++)
fscanf(fin, "%d", &v[i]);
dei(0, n-1);
for(i=0;i<n;i++)
fprintf(fout, "%d ", v[i]);
fclose(fin);
fclose(fout);
return 0;
}