Cod sursa(job #340964)

Utilizator LuffyBanu Lavinia Luffy Data 17 august 2009 10:29:47
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>
#define dim 500001
using namespace std;
int a[dim],b[dim];
void merge_s(int li, int ls)
{int jum,i,j,k;
  if(li==ls) return;
  jum=(li+ls)/2;
  
  merge_s(li,jum);
  merge_s(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 n,i;
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]);
merge_s(1,n);
 for(i=1;i<=n;i++)
	 fprintf(g,"%d ",a[i]);
 fprintf(g,"\n");
 return 0;
}