Cod sursa(job #1153125)

Utilizator kneillNegus Sebastian kneill Data 25 martie 2014 11:37:57
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>

using namespace std;
int i,n,a[500001];

void swap(int &i,int &j)
{
    int t;
    t=i;
    i=j;
    j=t;
}

int part (int st,int dr)
{
    int p,i,j;
    p=a[dr];
    j=st-1;
    for(i=st; i<=dr; i++)
        if(a[i]<=p)
            swap(a[++j],a[i]);
    return j;
}

void Quicks(int st,int dr)
{
    int poz;
    poz=part(st,dr);
    if(st<poz-1)
        Quicks(st,poz-1);
    if(dr>poz+1)
        Quicks(poz+1,dr);
}

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

    scanf("%d\n", &n);
    for(i=1; i<=n; i++)
        scanf("%d\n", &a[i]);
    Quicks(1,n);
    for(i=1; i<=n; i++)
        printf("%d\n", a[i]);
    return 0;
}