Cod sursa(job #761467)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 26 iunie 2012 01:22:56
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>

using namespace std;
int partition(int st, int dr, int* A) {
    int x = A[dr];
    int j = st;
    for(int i = st; i < dr; i++) {
        if(A[i] < x) {
            int aux = A[i];
            A[i] = A[j];
            A[j] = aux;
            j++;
        }
    }
    int aux = A[j];
    A[j] = x;
    A[dr] = aux;
    return j;
}

int qsort(int st, int dr, int* A) {
    if(st < dr) {
        int p = partition(st, dr, A);
        qsort(st, p - 1, A);
        qsort(p + 1, dr, A);
    }
}
int main()
{
    int A[500005];
    int n;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d", &n);
    for(int i = 1; i <= n; i++)
        scanf("%d",&A[i]);
    qsort(1, n, A);
    for(int i = 1; i <= n; i++)
     printf("%d ",A[i]);
    return 0;
}