Cod sursa(job #1023562)

Utilizator Cezara-OliviaBenegui Cezara Cezara-Olivia Data 7 noiembrie 2013 12:06:00
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<iostream.h>
#include<fstream.h>
ifstream f("algsort.in");
ofstream g("algsort.out");
int x[500000],n;
void divizeaza (int s,int d,int &m)
{ m=(s+d)/2;
}
void interclaseaza(int s,int d,int m)
{ int i=s,j=m+1,k=1,v[100];
   while(i<=m && j<=d)
	   {if(x[i]<x[j])
	   { v[k]=x[i];
	     i++;
	   }
	   else
	   {v[k]=x[j];
	    j++;
	   }
	   k++;
}
if(i<=m)
	  while(i<=m)
	  { v[k]=x[i];
	    i++;
		k++;
	  }
	  else
		  while (j<=d)
		  { v[k]=x[j];
		    j++;
			k++;
		  }
k=1;
for(i=s;i<=d;i++)
	{x[i]=v[k];
k++;}
}
void MergeSort(int s,int d)
{int m;
  if(s<d)
  {divizeaza(s,d,m);
  MergeSort(s,m);
  MergeSort(m+1,d);
  interclaseaza(s,d,m);
  }
}
int main()
{ int i;
f>>n;
for(i=1;i<=n;i++)
	  f>>x[i];
MergeSort(1,n);
for(i=1;i<=n;i++)
	g<<x[i]<<" ";
}