Cod sursa(job #446165)

Utilizator voikybodea voichita voiky Data 25 aprilie 2010 12:03:03
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream.h>

int n,x[500001],y[500001];

void inter(int st,int m,int dr)
{
	int i=st,j=m+1,k=st;
	while(i<=m && j<=dr)
		if(x[i]<x[j])y[k++]=x[i++];
		else y[k++]=x[j++];
	while(i<=m)y[k++]=x[i++];
	while(j<=dr)y[k++]=y[j++];
	for(i=st;i<=dr;i++)x[i]=y[i];
}

void sort(int st,int dr)
{
	if(st<dr)
	{
		int m=st+(dr-st)/2;
		sort(st,m);sort(m+1,dr);
		inter(st,m,dr);
	}
}

int main()
{
	ifstream f("algsort.in");ofstream g("algsort.out");
	int i;
	f>>n;for(i=1;i<=n;i++)f>>x[i];
	sort(1,n);
	for(i=1;i<=n;i++)g<<x[i]<<' ';
	f.close();g.close();
	return 0;
}