Cod sursa(job #1005931)

Utilizator alabala1vali smerica alabala1 Data 6 octombrie 2013 00:43:20
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<iostream>
#include<fstream>
void merges(unsigned st, unsigned dr, unsigned k[])
{
	if (st == dr)return;
	unsigned  m = (st + dr) / 2;
	merges(st, m, k);
	merges(m + 1, dr, k);
	unsigned c[10],j=st,i=m+1,s=0;
	while (j <= m || i <= dr)
	{
		if (j > m){ c[s++] = k[i++]; continue; }
		if (i > dr){ c[s++] = k[i++]; continue; }
		if (k[j] > k[i])c[s++] = k[i++];
		else c[s++] = k[j++]);
	}
	for (j = st, i = 0; i < s; i++, j++)k[j] = c[i];}

int main()
{
	unsigned a[500000],n;
	std::ifstream f("algsort.in");
	f >> n;
	for (unsigned  i = 0; i < n; i++)f >> a[i];
	f.close();
	merges(0,n-1,a);
	std::ofstream g("algsort.out");
	for (unsigned  i = 0; i < n; i++)g<< a[i]<<" ";
	g.close();
}