Cod sursa(job #1229069)

Utilizator Kira96Denis Mita Kira96 Data 16 septembrie 2014 11:12:37
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<ctime>
#define N 500100
#include<cstdlib>
#define FOR(a,b,c) for(int a=b;a<=c;++a)
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,t,v[N],s[N];
void smecherie(int st,int dr)
{
	if(st==dr||st>dr)
		return;
	int mij=(st+dr)>>1;
	smecherie(st,mij);
	smecherie(mij+1,dr);
	int p=st;
	int q=mij+1;
	int t=0;
	while(p<=mij&&q<=dr)
		s[++t]=v[p]<v[q]?v[p++]:v[q++];
	for(;p<=mij;++p)
		s[++t]=v[p];
	for(;q<=dr;++q)
		s[++t]=v[q];
	FOR(i,st,dr)
	v[i]=s[i-st+1];
}
int main ()
{
	f>>n;
	FOR(i,1,n)
		f>>v[i];
	smecherie(1,n);
	FOR(i,1,n)
		g<<v[i]<<" ";
	return 0;
}