Cod sursa(job #1023611)

Utilizator myshuSpatariu Mihai-Constantin myshu Data 7 noiembrie 2013 13:36:20
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
using namespace std;
int v[500001],w[500001];
void merge(int stg,int dr)
{
	if(stg!=dr){merge(stg,(dr+stg)/2);merge((stg+dr)/2+1,dr);}
	int i=stg,j=(stg+dr)/2+1,u=0;
	while(i<=(stg+dr)/2&&j<=dr)
	{
		if(v[i]<=v[j]){w[++u]=v[i];i++;}
		else {w[++u]=v[j];j++;}
	}
	while(i<=(stg+dr)/2){w[++u]=v[i];i++;}
	while(j<=dr){w[++u]=v[j];j++;}
	for(i=stg;i<=dr;i++)
		v[i]=w[i-stg+1];
}
int main()
{
	ifstream fcin("algsort.in");
	ofstream fcout("algsort.out");
	int n,i;
	fcin>>n;
	for(i=1;i<=n;i++)
		fcin>>v[i];
	merge(1,n);
	for(i=1;i<=n;i++)
		fcout<<v[i]<<' ';
	fcout<<'\n';
	return 0;
}