Cod sursa(job #1042380)

Utilizator florentina.alinaSeicaru Florentina Alina florentina.alina Data 26 noiembrie 2013 22:46:20
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb

#include<fstream>
void mergesort( int a[],unsigned int m,unsigned int ls,unsigned int ld)
{ unsigned int i,j,k,ii,b[100];
int u[100];
i=0; j=ls;
while(j<=m)       //copiem prima jumatate a vectorului a in vectorul b
{	b[i]=a[j];
    i++;
    j++;
}
ii=i;
k=ls;
i=0;
while(j<=ld && k<j && i<=ii)   //copiem cel mai mare element la fiecare pas
	if(b[i]<=a[j])
	  { a[k]=b[i];
		k++;
		i++;
	  }
	  else
	  { a[k]=a[j];
		k++;
		j++;
	  }
while(k<j)         // daca mai raman elemente in una din jumatati,le copiem
{ a[k]=b[i];
k++;
i++;
}
}
void merge(int v[],unsigned int ls,unsigned int ld)
{ unsigned int m;
if(ls<ld)
{   m=(ls+ld)/2;
    merge(v,ls,m);
	merge(v,m+1,ld);
	mergesort(v,m,ls,ld);
}
}
int main ()
{ long int n,i;
int v[500000];
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=1;i<=n;i++)
	f>>v[i];
merge(v,1,n);
for(i=1;i<=n;i++)
	g<<v[i]<<" ";
return 0;

}