Pagini recente » Cod sursa (job #2099130) | Cod sursa (job #1049261) | Cod sursa (job #134138) | Cod sursa (job #2813738) | Cod sursa (job #1699504)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 500005
int A[NMAX], B[NMAX];
void merge_sort(int l, int r)
{
int m = (l + r)/2;
int i, j, k;
if(l == r) return;
merge_sort(l, m);
merge_sort(m+1, r);
for(i=l, j=m+1, k=l; i<=m || j<=r; )
if(j>r || (A[i] < A[j]) )
B[k++] = A[i++];
else
B[k++] = A[j++];
for(k=l; k<=r; k++)
A[k] = B[k];
}
int main() {
int i;
FILE *fin;
int n;
fin = fopen("algsort.in", "r");
// fout = fopen("algsort.out", "w");
fscanf(fin, "%d", &n );
for( i = 0; i < n; i++ )
fscanf(fin,"%d", &A[i] );
merge_sort( 0, n-1);
for( i = 0; i < n; i++ )
printf("%d ", B[i] );
return 0;
}