Cod sursa(job #1315708)

Utilizator alexandrionUNIBUC Marcu Alexandru alexandrion Data 13 ianuarie 2015 00:29:03
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.93 kb
#include <stdio.h>
#include <stdlib.h>
FILE *f,*g;
void mergesort( int a[50000], int ls, int m ,int ld)
{
    int b[50000];
    int i ,  j , k ;
    i=0;
    j=ls;
    while(j<=m)
        b[i++]=a[j++];
    i=0;
    k=ls;
    while(k<j && j <=ld)
        if(b[i]<=a[j])
            a[k++]=b[i++];
        else
            a[k++]=a[j++];

              while (k < j)
        a[k++] = b[i++];
}
void merge(int a[100], int ls , int ld)
{
    if(ls<ld)
    {
        int m=(ls+ld)/2;
        merge(a,ls,m);
        merge(a,m+1,ld);
        mergesort(a,ls,m,ld);
    }
}


void citire( int a[100] , int n)
{
    int i;
    for(i=0; i<n; i++)
        fscanf(f,"%d",&a[i]);
}


int main()
{f=fopen("algsort.in","r");
g=fopen("algsort.out","w");
    int a[50000],  n , i  ;
    fscanf(f,"%d",&n);
    citire(a,n);
    merge(a,0,n);
    for(i=0; i<n; i++)
       fprintf(g,"%d ",a[i]);


    return 0;
}