Pagini recente » Cod sursa (job #67805) | Cod sursa (job #592351) | Cod sursa (job #208158) | Cod sursa (job #3169068) | Cod sursa (job #1315708)
#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;
}