Cod sursa(job #2305062)

Utilizator eduardandrei20Nechifor Eduard Andrei eduardandrei20 Data 19 decembrie 2018 00:06:00
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>

using namespace std;

void quickSort(int v[], int left, int right) {

    int pivot = v[(left + right) / 2];
    int i = left, j = right;

    while (i <= j) {
        while (v[i] < pivot && i < right) {
            i++;
        }
        while (v[j] > pivot and j > left) {
            j--;
        }
        if (i <= j) {
            swap(v[i], v[j]);
            i++, j--;
        }
    }
    if (j >= left) {
            quickSort(v, left, j);
    }
    if (i <= right) {
        quickSort(v, i, right);
    }
}

int main() {

    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);
    int v[500000], n, i;

    cin >> n;
    for (i = 0; i < n; i++)
        cin >> v[i];

    quickSort(v, 0, n - 1);

    for (i = 0; i < n; i++)
        cout << v[i] << " ";

    return 0;
}