Cod sursa(job #340963)

Utilizator bugyBogdan Vlad bugy Data 17 august 2009 10:26:23
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<iostream>
using namespace std;
#define dim  500001

int a[dim], b[dim];
void mergesort(int li, int ls)
{
int jum, i, j,k;
if(li==ls) return ;
jum=(li+ls)/2;
mergesort(li,jum);
mergesort(jum+1,ls);
i=li; 	j=jum+1;	k=li;

while(	(i<=jum)  || (j<=ls)	)
{
if(	(j>ls) || ( (i<=jum) &&(a[i]<a[j]) ) )
{

	b[k]=a[i];
	i++;
	k++;
}
else
{
b[k]=a[j]; 
j++;
k++;
}
}
for(i=li;i<=ls;i++)
	a[i]=b[i];


}
int main()
{
int i,n;
FILE *f=fopen("algsort.in","r"), *g=fopen("algsort.out","w");

fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
	fscanf(f,"%d",&a[i]);
mergesort(1,n);

for(i=1;i<=n;i++)
	fprintf(g,"%d ",a[i]);
fprintf(g,"\n");
fclose(f);
fclose(g);

}