Cod sursa(job #3285060)

Utilizator DalvDalvGhita Vladut DalvDalv Data 12 martie 2025 14:54:36
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>

#include <fstream>

using namespace std;

int v[500000];
int tmp[500000];

void mergeSort(int st, int dr) {
	if(st >= dr - 1) return;
	int mid = (st + dr) / 2;
	mergeSort(st, mid);
	mergeSort(mid, dr);

	int ci = st;
	int ai = st, bi = mid;

	while(ai < mid && bi < dr) {
		if(v[ai] < v[bi]) tmp[ci++] = v[ai++];
		else tmp[ci++] = v[bi++];
	}
	while(ai < mid) tmp[ci++] = v[ai++];
	while(bi < dr) tmp[ci++] = v[bi++];

	for(int i = st; i < dr; i++) {
		v[i] = tmp[i];
	}
	cout << endl;
}

int main() {
	ifstream fin("algsort.in");
	ofstream fout("algsort.out");

	int n;

	fin >> n;
	for(int i = 0; i < n; ++i) {
		fin >> v[i];
	}

	mergeSort(0, n);
	for(int i = 0; i < n; ++i) {
		cout << v[i] << " ";
	}

	return 0;
}