Cod sursa(job #1699504)

Utilizator Miruna_DMiruna Miruna_D Data 7 mai 2016 15:51:14
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.77 kb
#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;
}