Cod sursa(job #1112863)

Utilizator kojocojocaru aurelian kojo Data 20 februarie 2014 08:49:56
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 a[500000],n;
void interclasare(int ls,int m,int ld);

int div_imp(int ls,int ld)
{
	int m=(ls+ld)/2;
	
	if(ls<ld)
	{
		div_imp(ls,m);
		div_imp(m+1,ld);
		interclasare(ls,m,ld);
	}
}

void interclasare(int ls,int m,int ld)
{
	int b[500000],i,j,k;
	k=ls;
	i=ls;
	j=m+1;
	
	while(i<=m&&j<=ld)
		if(a[i]<=a[j])
			b[k++]=a[i++];
		else
			b[k++]=a[j++];
	
	while(i<=m)
        b[k++]=a[i++];
	
	while(j<=ld)
		b[k++]=a[j++];
	
	for(i=ls;i<=ld;i++)
		a[i]=b[i];
}
		
	int main()
{
	int i;
	ifstream f("algsort.in");
	ofstream g("algsort.out");	
    
	f>>n;
	for(i=1;i<=n;i++)
		f>>a[i];
	div_imp(1,n);
	
	for(i=1;i<=n;i++)
		g<<a[i]<<" ";
	
}