Cod sursa(job #2407079)

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

void inter(int s,int m,int d){
	int i=s,j=m+1,k=1,c[MAX];	
	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(1,n);
	for(int i=1;i<=n;i++)
		fout<<a[i]<<" ";
}