Cod sursa(job #2669402)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 6 noiembrie 2020 21:14:54
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

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

void quicksort(int a[], int st, int dr) {
	if(st < dr) {
		int mid = (st + dr) >> 1;
		swap(a[st], a[mid]);
		int i = st , j = dr, d = 0;
		while(i < j) {
			if(a[i] > a[j]) {
				swap(a[i], a[j]);
				d = !d;
			}
			i += d;
			j -= !d;
		}
		quicksort(a, st , i - 1);
		quicksort(a, i + 1, dr);
	}
}

const int NMAX = 5e5 + 5;
int N, a[NMAX];

int main() {
    fin.sync_with_stdio(false);
    fout.sync_with_stdio(false);
    fin.tie(nullptr);
    fout.tie(nullptr);
    fin >> N;
    for(int i = 1; i <= N; ++i)
        fin >> a[i];
    quicksort(a, 1, N);
    for(int i = 1; i <= N; ++i)
        fout << a[i] << ' ';
}