Cod sursa(job #2613824)

Utilizator florian_petrutCoaje Petrut florian_petrut Data 10 mai 2020 18:28:59
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream in("algsort.in");
ofstream out("algsort.out");

const int N=500000;
int c[N],a[N];
void interclasare(int a[], int st, int m, int dr)
{
	int i = st, j = m + 1, k = -1;
	while (i <= m && j <= dr)
		if (a[i] < a[j]) c[++k] = a[i++];
		else c[++k] = a[j++];
	while (i <= m) c[++k] = a[i++];
	while (j <= dr) c[++k] = a[j++];
	for (i = 0; i <= k; i++) a[st + i] = c[i];
}
void Msort(int a[], int st, int dr)
{
	int m = st + (dr - st) / 2;
	if (st < dr)
	{
		Msort(a, st, m);
		Msort(a, m + 1, dr);
		interclasare(a, st, m, dr);
	}
}

int main()
{
	int n, i;
	in>>n;
	for (i = 0; i < n; i++)
        in>>a[i];
	Msort(a, 0, n - 1);
	for (i = 0; i < n; i++) out<< a[i] << " ";

    return 0;
}