Cod sursa(job #794432)

Utilizator shagarthAladin shagarth Data 6 octombrie 2012 12:22:38
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long i,v[500001],n,vv[500001],l,r,j;

void interclasare(int l,int m,int r)
{
	int ii=l;
	i=l;
	j=m+1;
	while(i<=m && j<=r)
	{
		if(v[i]<v[j])
		{
			vv[ii]=v[i];
			i++;
			ii++;
		}
		else
		{
			vv[ii]=v[j];
			j++;
			ii++;
		}
	}
	while(i<=m)
	{
		vv[ii]=v[i];
		i++;
		ii++;
	}
	while(j<=r)
	{
		vv[ii]=v[j];
		ii++;
		j++;
	}
	for(i=l;i<=r;i++)
	{
		v[i]=vv[i];
	}
	return;

}
void ms(int l,int r)
{
	if(l==r)
		return;
	int m=(l+r)/2;
	ms(l,m);
	ms(m+1,r);
	interclasare(l,m,r);
}
int main()
{
	f>>n;
	for(i=1;i<=n;i++)
	{
		f>>v[i];
	}
	l=1;
	r=n;
	ms(l,r);
	for(i=1;i<=n;i++)
		g<<v[i]<<" ";
	f.close();
	g.close();
	return 0;
}