Cod sursa(job #884003)

Utilizator Kira96Denis Mita Kira96 Data 20 februarie 2013 16:37:45
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<stdio.h>
int k[500001],v[500001],t,i,n;
void ms(int s,int d)
{
	int i1,i2,M,t;
	if(s==d)
	return ;
	else
	{
		int M=(s+d)/2;
		ms(s,M);
		ms(M+1,d);
		t=0;
		for(i1=s,i2=M+1;i1<=M&&i2<=d;)
		{
			if(v[i1]<v[i2])
			k[++t]=v[i1++];
			else
			k[++t]=v[i2++];
		}
		for(;i1<=M;i1++)
		k[++t]=v[i1];
		for(;i2<=d;i2++)
		k[++t]=v[i2];
		for(int i=s,t=1;i<=d;++i,++t)
		v[i]=k[t];
	}
}
	
int main ()
{
	freopen ("algsort.in","r",stdin);
	freopen ("algsort.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;++i)
	scanf("%d",&v[i]);
	ms(1,n);
	for(i=1;i<=n;++i)
	printf("%d ",v[i]);
	return 0;
}