Cod sursa(job #1093458)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 28 ianuarie 2014 00:12:43
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<cstdio>
#include<algorithm>

using namespace std;

const int NMAX = 500005;

int N;
int V[NMAX];

void QuickSort(int L,int R)
{
    if(L >= R) return;
    // Pivot la jumatatea sirului
    int P=V[(L+R)/2];
    int st=L,dr=R;
    for(; st<=dr;)
    {
        for(; V[st]<P; st++);
        for(; P<V[dr]; dr--);
        if(st<=dr)
        {
            swap(V[st],V[dr]);
            st++;
            dr--;
        }
    }
    QuickSort(L,dr);
    QuickSort(st,R);
}

int main()
{
    int i;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);

    scanf("%d",&N);
    for(i=1; i<=N; i++)
        scanf("%d",&V[i]);
    QuickSort(1,N);
    for(i=1; i<=N; i++)
        printf("%d ",V[i]);
    return 0;
}