Cod sursa(job #3222869)

Utilizator antoniogrosuAntonio Grosu antoniogrosu Data 11 aprilie 2024 19:44:57
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream in("algosort.in");
ofstream out("algosort.out");

void QS(int v[], int start, int n)
{
    if (start < n)
    {

        int mid = (start + n) / 2;
        int aux = v[start];
        v[start] = v[mid];
        v[mid] = aux;
        int i = start, j = n, d = 0;
        while (i < j)
        {
            if (v[i] > v[j])
            {
                int aux = v[i];
                v[i] = v[j];
                v[j] = aux;
                d = 1 - d;
            }
            i += d;
            j -= 1 - d;
        }
        QS(v, start, i);
        QS(v, i + 1, n);
    }
}
int main()
{
    int v[500001];
    int n;
    in >> n;
    for (int i = 1; i <= n; i++)
        in >> v[i];
    QS(v, 1, n);
    for (int i = 1; i <= n; i++)
        out << v[i] << " ";

    return 0;
}