Cod sursa(job #1977038)

Utilizator SilviuIIon Silviu SilviuI Data 4 mai 2017 21:48:10
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <stdio.h>
#include <algorithm>
#define nmax 500010

using namespace std;

int n;
int t[nmax];

int particion(int st, int dr)
{
    int pivot = t[dr];
    int pIndex = st;

    for (int i = st; i < dr; i++)
        if (t[i] <= pivot) {

            swap(t[i], t[pIndex]);

            pIndex++;

    }

    swap(t[dr], t[pIndex]);

    return pIndex;
}

void quicksort(int st, int dr)
{
    if (st < dr) {

        int pIndex = particion(st, dr);

        quicksort(st, pIndex - 1);
        quicksort(pIndex + 1, dr);

    }
}

int main()
{
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);

    scanf("%d", &n);

    for (int i = 1; i <= n; i++) scanf("%d", &t[i]);

    quicksort(1, 6);

    for (int i = 1; i <= n; i++) printf("%d ", t[i]);

    return 0;
}