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