Cod sursa(job #316399)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 19 mai 2009 14:32:51
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
vector <int> a(1);
int n,x,i;
int part(int st,int dr)
{
    int i=st-1,j,x=a[dr];
    for(j=st;j<=dr;j++)
        if(a[j]<=x)
            swap(a[i++],a[j]);
    if(i>=dr)
        i--;
    return i;
}
void QSort(int st,int dr)
{
    if(st<dr)
    {
        int q=part(st,dr);
        QSort(st,q);
        QSort(q+1,dr);
    }
}
int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&x);
        a.push_back(x);
    }
    QSort(1,n);
    for(i=1;i<=n;i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}