Cod sursa(job #568177)

Utilizator Robert29FMI Tilica Robert Robert29 Data 30 martie 2011 21:30:52
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
int n,v[500001];
void sorteaza(int st,int dr){
	if(st<dr){
		int m=(st+dr)/2;
		sorteaza(st,m);
		sorteaza(m+1,dr);
		int w[st+dr+5];
		int i=st;
		int j=m+1;
		int k=0;
		while(i<=m&&j<=dr)
			if(v[i]<v[j])
				w[++k]=v[i++];
			else
				w[++k]=v[j++];
		
		while(i<=m)
			w[++k]=v[i++];
		while(j<=dr)
			w[++k]=v[j++];
		for(int i=st,k=1;i<=dr;++i,++k)
			v[i]=w[k];
	}
	
	
}
int main() {
	fi>>n;
	for(int i=1;i<=n;++i)
		fi>>v[i];
	
	sorteaza(1,n);
	
	for(int i=1;i<=n;++i)
		fo<<v[i]<<' ';
	
	fi.close();
	fo.close();
	return 0;
}