Cod sursa(job #2643955)

Utilizator madalin_frFrincu Madalin madalin_fr Data 22 august 2020 16:56:14
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
#define NMAX 500005

int A[NMAX], B[NMAX];
void MergeSort(int st, int dr) {
	if (st == dr)
		return;
	int mij = (st + dr) / 2;
	MergeSort(st, mij);
	MergeSort(mij + 1, dr);
	int i = st;
	int j = mij + 1;
	int k = st;
	while(i <= mij || j <= dr)
	{
		if( j > dr || (i <= mij && A[i] < A[j]))
		{
			B[k++] = A[i++];
		}
		else
		{
			B[k++] = A[j++];
		}
	}
	for (int l = st; l <= dr; l++)
	{
		A[l] = B[l];
	}
}
int main()
{
	ifstream fin("algsort.in");
	ofstream fout("algsort.out");
	int n;
	fin >> n;
	for (int i = 0; i < n; ++i)
		fin >> A[i];
	MergeSort(0, n - 1);
	for (int i = 0; i < n;++i)
		fout << A[i] << ' ';
	fout.close();
	return 0;
}