Cod sursa(job #2200910)

Utilizator PredaBossPreda Andrei PredaBoss Data 2 mai 2018 21:30:07
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;
int v[500005],n;
int pivot(int st,int dr)
{
    int x=v[st+rand()%(dr-st)];
    st--;
    dr++;
    while(1)
    {
        do
        {
            dr--;
        }while(v[dr]>v[x]);
        do
        {
            st++;
        }while(v[st]<v[x]);
        if(st<dr)
            swap(v[st],v[dr]);
        else
            return dr;
    }
}
void quik_sort(int st,int dr)
{
    if(st<dr)
    {
        int q=pivot(st,dr);
        quik_sort(st,q);
        quik_sort(q+1,dr);
    }
}
int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&v[i]);
    quik_sort(1,n);
    for(int i=1;i<=n;i++)
        printf("%d ",v[i]);
    return 0;
}