Cod sursa(job #2313449)

Utilizator KaryamKaryam Ahmad Karyam Data 6 ianuarie 2019 21:14:19
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e5+2;

FILE *fin  = freopen("algsort.in", "r", stdin);
FILE *fout = freopen("algsort.out", "w", stdout);

int n;
int a[maxn];

int partition(int left, int right) {
	int pivot = right;
	int i = left - 1;
	for (int j = left; j < right; ++ j)
		if (a[j] <= a[pivot]) {
			++i;
			swap(a[i], a[j]);
		}
	i++;
	swap(a[i], a[pivot]);
	return i;
}

void quicksort(int left, int right) {
    if(left >= right)
        return;
	int pi = partition(left, right);
	quicksort(left, pi-1);
	quicksort(pi+1, right);
}

int main(){
	cin >> n;
	for (int i = 0; i < n; ++ i)
		cin >> a[i];
	quicksort(0, n-1);
	for (int i = 0; i < n; ++ i)
		cout << a[i] << " ";
	return 0;
}