Cod sursa(job #2172305)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 15 martie 2018 15:59:51
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

int v[500005], n;

void quick(int st, int dr)
{
    int l = st, r = dr, x, piv = st+(dr-st+1)/2, aux;
    aux = v[l];
    v[l] = v[piv];
    v[piv] = aux;
    x = v[l];
    while(l < r){
        while(l < r && v[r] >= x)
            --r;
        v[l] = v[r];
        while(l < r && v[l] <= x)
            ++l;
        v[r] = v[l];
    }
    v[l] = x;
    if(l-1 > st)
        quick(st, l-1);
    if(l+1 < dr)
        quick(l+1, dr);
}

int main()
{
    ifstream fin ("algsort.in");
    ofstream fout ("algsort.out");
    fin >> n;
    for (int i = 1; i <= n; ++i)
        fin >> v[i];
    quick(1, n);
    for (int i = 1; i <= n; ++i)
        fout << v[i] << " ";
    return 0;
}