Cod sursa(job #497917)

Utilizator ChallengeMurtaza Alexandru Challenge Data 3 noiembrie 2010 16:21:28
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

const char InFile[]="algsort.in";
const char OutFile[]="algsort.out";
const int MaxN=500111;

ifstream fin(InFile);
ofstream fout(OutFile);

int n,v[MaxN];

void merge_sort(int st, int sf)
{
	if(st<sf)
	{
		int mid=(sf+st)>>1;
		merge_sort(st,mid);
		merge_sort(mid+1,sf);
		int st1=st;
		int st2=mid+1;
		while(st1<sf)
		{
			if(st2<=sf)
			{
				if(v[st1]>v[st2])
				{
					swap(v[st1],v[st2]);
					++st2;
				}
			}
			++st1;
		}
	}
}

int main()
{
	fin>>n;
	for(register int i=1;i<=n;++i)
	{
		fin>>v[i];
	}
	fin.close();

	merge_sort(1,n);

	for(register int i=1;i<=n;++i)
	{
		fout<<v[i]<<" ";
	}
	fout.close();
	return 0;
}