Cod sursa(job #570345)

Utilizator mihai995mihai995 mihai995 Data 2 aprilie 2011 21:56:22
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
using namespace std;

const int N=500001;
int v[N],aux[N],n,i,j,k;

ifstream in("algsort.in");
ofstream out("algsort.out");

void merge_sort(int v[],int st,int dr)
{
	if (st==dr)
		return;
	int m=(st+dr)/2;
	merge_sort(v,st,m);
	merge_sort(v,m+1,dr);
	for(k=st,i=st,j=m+1;k<=dr;k++)
		if (j>dr || v[i]<v[j] && i<=m)
			aux[k]=v[i++];
		else
			aux[k]=v[j++];
	for (k=st;k<=dr;k++)
		v[k]=aux[k];
}

int main()
{
	int i;
	in>>n;
	for (i=1;i<=n;i++)
		in>>v[i];
	merge_sort(v,1,n);
	for (i=1;i<=n;i++)
		out<<v[i]<<" ";
	out<<"\n";
	return 0;
}