Cod sursa(job #1735148)

Utilizator dinurosca1503Dinu Rosca dinurosca1503 Data 29 iulie 2016 09:34:44
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>

using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[500000];



void qs(int ls, int ld)
{
    int pivot = ls + rand() % (ld-ls+1) ;
    int s = ls ;
    int d = ld ;
    while(s <= d){
        while(v[s] < v[pivot])
            s++ ;
        while(v[d] > v[pivot])
            d-- ;

        if(s<=d){
            swap(v[s], v[d]);
            s++;
            d--;
            }

    }
    if(d > ls)
        qs(ls , d );
    if(s < ld)
        qs(s, ld);

}

int main()
{
    int n, i;
     srand(time(NULL));

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

    return 0;
}