Cod sursa(job #899011)

Utilizator tanduraDomnita Dan tandura Data 28 februarie 2013 12:34:47
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <cstdio>
using namespace std;

int x[500001];

void qs(int st,int dr)
{
    int i,j,mij;
    i=st;
    j=dr;
    mij=x[(st+dr)/2];
    do
    {
        while(x[i]<mij) i++;
        while(x[j]>mij) j--;
        if(i<=j)
        {
            int aux=x[i];
            x[i]=x[j];
            x[j]=aux;
            i++;
            j--;
        }
    }while(i<=j);
    if(st<j)
      qs(st,j);
    if(dr>i)
      qs(i,dr);
}

int main()
{
    int i,n;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&x[i]);
    qs(1,n);
    for(i=1;i<=n;i++)
        printf("%d ",x[i]);
    return 0;
}