Cod sursa(job #2643349)

Utilizator RaduVFVintila Radu-Florian RaduVF Data 19 august 2020 16:27:09
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

std::ifstream fin("algsort.in");
std::ofstream fout("algsort.out");

void QuickSort(std::vector<int>& v, int st, int dr) {
	if (st < dr) {
		int mid = (st + dr) / 2;
		int pivot = v[st];
		v[st] = v[mid];
		v[mid] = pivot;
		int i = st, j = dr, d = 0;
		while (i < j) {
			if (v[i] > v[j]) {
				pivot = v[i];
				v[i] = v[j];
				v[j] = pivot;
				d = 1 - d;
			}
			i += d;
			j -= 1 - d;
		}
		QuickSort(v, st, i - 1);
		QuickSort(v, i + 1, dr);
	}
}

int main() {
	int n;
	fin >> n;
	std::vector<int> v(n);
	for (int i = 0; i < n; ++i) {
		fin >> v[i];
	}
	QuickSort(v, 0, n - 1);
	for (int i = 0; i < n; ++i) {
		fout << v[i] << ' ';
	}
	return 0;
}