Cod sursa(job #2863378)

Utilizator QwertyDvorakQwerty Dvorak QwertyDvorak Data 6 martie 2022 17:11:29
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define mp make_pair
#define dbg(x) cout << #x <<": " << x << "\n";
using ll = long long;

const string myf = "algsort";
ifstream fin(myf + ".in");
ofstream fout(myf + ".out");

int n;
int a[500005];

void hoaver(int st, int dr) {
	int b = st, e = dr;
	int pivot = a[rand() % (st + dr) + 1];
	while (a[b] < pivot) b++;
	while (a[e] > pivot) e--;
	while (b < e) {
		swap(a[b], a[e]);
		do {
			b++;
		} while (a[b] < pivot);
		do {
			e--;
		} while (a[e] > pivot);
	}
	if (st < e)
		hoaver(st, e);
	if (e + 1 < dr)
		hoaver(e + 1, dr);
}

int main() {

	fin >> n;
	for (int i = 1; i <= n; ++i)
		fin >> a[i];
	sort(a + 1, a + n + 1);
	for (int i = 1; i <= n; ++i)
		fout << a[i] << " ";
	fout << '\n';

	fin.close();
	fout.close();
	return 0;
}