Cod sursa(job #1011909)

Utilizator ovimiuOvidiu Miu ovimiu Data 17 octombrie 2013 19:02:14
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
int x[1000],n;

void interclaseaza(int s, int d, int m)
{
int i=s,j=m+1,k=1,v[100];
while(i<=m && j<=d)
	{
		if(x[i]<x[j])
			{
				v[k]=x[i]; i++;
			}
		else
			{
				v[k]=x[j]; j++;
			}
	k++;
	}
if(i<=m)
	while(i<=m)
		{v[k]=x[i]; i++; k++;}
else 
	while(j<=d)
		{v[k]=x[j]; j++; k++;}
for(k=1,i=s;i<=d;k++,i++)
	x[i]=v[k];
}

void merge_sort(int s, int d)
{
int m;
if(s<d)
{
m=(s+d)/2;
merge_sort(s,m);
merge_sort(m+1,d);
interclaseaza(s,d,m);
}
}

int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
int i;
f>>n;
for(i=1;i<=n;i++)
	f>>x[i];
merge_sort(1,n);
for(i=1;i<=n;i++)
	g<<x[i]<<" ";
}