Cod sursa(job #1023408)

Utilizator DyaStarDiana Boiangiu DyaStar Data 6 noiembrie 2013 21:45:03
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<iostream>
#include<fstream>

using namespace std;
int v[500001],b[500001];
void  merge(int i,int j,int n)
{int mij,z,s;
mij=j;
z=i;
s=i;
	while((i<mij) && (j<=n))
	{	if(v[i]<v[j])
	{b[z]=v[i];
		i++;
	}
		else
		{	b[z]=v[j];
			j++;
		}
		z++;
	}
	while(i<mij)
	{b[z]=v[i];
		i++;
		z++;
	}
	while(j<=n)
	{b[z]=v[j];
		j++;
		z++;
	}
	for(z=s;z<=n;z++)
		v[z]=b[z];

}
void divide(int li,int ls)
{int m;

if(li<ls)
	{m=(li+ls)/2;
		divide(li,m);
divide(m+1,ls);
merge(li,m+1,ls);
	}
}



int main()
{int n;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(int i=0;i<n;i++)
	f>>v[i];
divide(0,n-1);

for(int i=0;i<n;i++)
	g<<v[i]<<" ";
f.close();
g.close();
return 0;
}