Cod sursa(job #1491976)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 26 septembrie 2015 20:21:49
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int v[100005];
void sor(int st,int fi)
{
    if(st>=fi)
    return ;
    int in,sf,po,x,w,i;
    in=st;
    sf=fi;
    po=rand();
    po=po%(fi-st+1);
    x=v[st+po];
    while(in<sf)
    {
        while(v[in]<x && in<sf)
        in++;
        while(v[sf]>x && in<sf)
        sf--;
        if(in<sf)
        {
            w=v[in];
            v[in]=v[sf];
            v[sf]=w;
        }
        in++;
        sf--;
    }
    sor(st,in-1);sor(in,fi);
}
int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    int n,i,j;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    scanf("%d",&v[i]);
    sor(1,n);
    for(i=1;i<=n;i++)
    printf("%d ",v[i]);
    return 0;
}