Cod sursa(job #1021944)

Utilizator dan.ghitaDan Ghita dan.ghita Data 4 noiembrie 2013 15:05:40
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<fstream>
#include<ctime>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[500000],n;

void qs(int a, int b)
{
    int i=a, j=b, p;
    srand(time(NULL));
    p=a+rand()%(b-a);
    while(i<=j)
    {
        while(v[i]<v[p])
            ++i;
        while(v[j]>v[p])
            --j;
        if(i<=j)
        {
            swap(v[i], v[j]);
            ++i;
            --j;
        }
    }
    if(a<j)
        qs(a,j);
    if(i<b)
        qs(i,b);

}
int main()
{

    f>>n;
    for(int i=0;i<n;++i)
        f>>v[i];
    qs(0,n-1);
    for(int i=0;i<n;++i)
        g<<v[i]<<" ";

    return 0;
}