Cod sursa(job #2407069)

Utilizator Neamtu93George Neamtu93 Data 16 aprilie 2019 14:05:15
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
using namespace std;
int a[5000005],n;

void inter(int s,int m,int d){
	int i=s,j=m+1,k=1,c[5000005];
	while(i<=m && j<=d)
		if(a[i]<a[j]) c[k++]=a[i++];
		else c[k++]=a[j++];
	while(i<=m) c[k++]=a[i++];
	while(j<=d) c[k++]=a[j++];
	k=1;
	for(i=s;i<=d;i++) a[i]=c[k++];
	
	
}

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

int main(){
	fin>>n;
	for(int i=1;i<=n;i++) 
		fin>>a[i];
	merge_sort(a,1,n);
	for(int i=1;i<=n;i++)
		fout<<a[i]<<" ";
	return 0;
}