Cod sursa(job #1735156)

Utilizator dinurosca1503Dinu Rosca dinurosca1503 Data 29 iulie 2016 10:24:33
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 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 = v[(ls+ld)/2] ;
    int s = ls ;
    int d = ld ;
    while(s <= d){
        while(v[s] < pivot)
            s++ ;
        while(v[d] > pivot)
            d-- ;

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

    }
    if(ls < d)
        qs(ls , d );
    if(ld > s)
        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;
}