Cod sursa(job #3332590)

Utilizator livliviLivia Magureanu livlivi Data 7 ianuarie 2026 19:39:04
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <random>
#include <ctime>

using namespace std;

mt19937 rng(time(nullptr));

void quicksort(vector<int>& v, int st, int dr) {
	if (st >= dr) {
		return;
	}

	int pos = st + rng() % (dr - st + 1);
	int p = v[pos];
	swap(v[pos], v[dr]);

	int j = st;
	for (int i = st; i < dr; i++) {
		if (v[i] < p) {
			swap(v[i], v[j]);
			j++;
		}
	}

	swap(v[j], v[dr]);

	quicksort(v, st, j - 1);
	quicksort(v, j + 1, dr);
}

int main() {
	ifstream cin("algsort.in");
	ifstream cout("algsort.out");

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

	quicksort(v, 0, n - 1);

	for (auto i : v) {
		cout << i << " ";
	}
	cout << "\n";
	return 0;
}