Cod sursa(job #1129713)

Utilizator barabasi_csongorBarabasi Csongor barabasi_csongor Data 28 februarie 2014 08:13:19
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>

using namespace std;
int t[500003];

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

    if(i<dr) quick(i,dr);
    if(j>st) quick(st,j);
}

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