Cod sursa(job #2407061)

Utilizator Neamtu93George Neamtu93 Data 16 aprilie 2019 13:52:22
Problema Sortare prin comparare Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
using namespace std;
void inter(int a[],int s,int m,int d){
	int i=s,j=m+1,k=1,c[100];
	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++];
	
	
}

int afisare(int a[],int n){
	for(int i=1;i<=n;i++)
		fout<<a[i]<<" ";
}

void citeste(int a[],int &n){
	fin>>n;
	for(int i=1;i<=n;i++) fin>>a[i];
}

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

int main(){
	int a[100],n;
	citeste(a,n);
	merge_sort(a,1,n);
	afisare(a,n);
	return 0;
}