Cod sursa(job #608005)

Utilizator cosminx2003Cosmin Clapon cosminx2003 Data 14 august 2011 15:59:21
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream.h>
#define MAX 500001

ifstream f("algsort.in");
ofstream g("algsort.out");
int v[MAX],a[MAX];

int main()
{
	int i,j,n,m=1,pasi,start,stop,dr;
	
	f>>n;
	for(i=1;i<=n;i++)
		f>>v[i];
	
	pasi=1;

	while(pasi<n)
	{
		start=1, stop=pasi;
		while(stop<=n)
		{
			i=start, j=i+pasi;
			m=1;
			dr=stop+pasi;
			if(dr>n) dr=n;
			
			while(i<=stop&&j<=dr)
				if(v[i]<v[j])
					a[m++]=v[i], i++;
				else
					a[m++]=v[j], j++;
			
			while(i<=stop)
				a[m++]=v[i++];
			while(j<=dr)
				a[m++]=v[j++];
	
			m=1;
			for(i=start;i<=dr;i++)
				v[i]=a[m++];
			
			start+=2*pasi, stop+=2*pasi;
		}
		pasi=pasi*2;
	}
	
	for(i=1;i<=n;i++)
		g<<v[i]<<" ";
	
	
	f.close();
	g.close();
	return 0;
}