Cod sursa(job #1313970)

Utilizator eneandradaEne Oana-Andrada eneandrada Data 11 ianuarie 2015 13:11:42
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");


int N,i,j;
long v[500005];

int poz(int st,int dr)
{
    int piv;
    piv=v[st+rand()%(dr-st+1)];
    while(st<dr)
    {
        while (v[st] < piv)
            ++ st;
        while (v[dr] > piv)
            -- dr;
        if (st <= dr)
        {
            swap(v[st], v[dr]);
            ++ st, -- dr;
        }
    }
    return st ;
}

void quick(int st,int dr)
{
    if(st<dr)
    {
        int k=poz(st,dr);
        quick(st,k-1);
        quick(k + 1,dr);
    }
}

int main()
{
    f>>N;
    for(i=1;i<=N;i++)
        f>>v[i];
    quick(1,N);
    for(i=1;i<=N;i++)
        g<<v[i]<<" ";
    f.close(); g.close();
    return 0;
}