Cod sursa(job #1019616)

Utilizator hellol30FMI Macovei Daniel hellol30 Data 31 octombrie 2013 17:35:24
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<cstdio>
#define Nmax 500005
using namespace std;
int a[Nmax],b[Nmax];
int n;
void merge(int s, int d)
{
 if(s<d)
	{int j,i=1,k=1,m=(s+d)/2;
	 merge(s,m);
	 merge(m+1,d);
	 for(j=1;j<=m;j++) b[j]=a[j];
	 for(j=m+1; i<=m && j<=n ;)
		a[k++]=(a[j]<b[i])? a[j++] : b[i++];
	 while(i<=m) a[k++]=b[i++];
	}
}
int main()
{
	freopen("algsort.in","rt",stdin);
	freopen("algsort.out","wt",stdout);
	scanf("%d",&n);
	for(register int i=1;i<=n;i++) scanf("%d",&a[i]);
	merge(1,n);
	for(register int i=1;i<=n;i++) printf("%d ",a[i]);
	printf("\n");
	return 0;
}