Pagini recente » Cod sursa (job #1251068) | Cod sursa (job #811450) | Cod sursa (job #1239982) | Cod sursa (job #2087799) | Cod sursa (job #1589557)
#include <stdio.h>
int v[100001];
int aux[100001];
void interclasare(int st, int dr)
{
int i, j, k, m;
m=(st+dr)/2;
i=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];
}
void sortare(int st, int dr)
{
if(st==dr)
return;
int m=(st+dr)/2;
sortare(st, m);
sortare(m+1, dr);
interclasare(st, dr);
}
int main()
{
FILE *in, *out;
in=fopen("algsort.in", "r");
out=fopen("algsort.out", "w");
int n, i;
fscanf(in, "%d", &n);
for(i=1; i<=n; i++)
fscanf(in, "%d", &v[i]);
sortare(1, n);
for(i=1; i<=n; i++)
fprintf(out, "%d ", v[i]);
fclose(in);
fclose(out);
return 0;
}