Cod sursa(job #1018047)

Utilizator andreeaghetuUNIBUC andreeaghetu andreeaghetu Data 28 octombrie 2013 20:21:29
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>
using namespace std;
ifstream in ("algsort.in");
ofstream out ("algsort.out");
int N, v[500005];
void interschimb (int &x, int &y)
{
    int aux=x;
    x=y;
    y=aux;
}
void quicksort(int poz_piv, int a, int b)
{
    if (b-a>0)
    {
        int i=a, j=b;
        while (i<=j)
        {
            while (v[i]<v[poz_piv])
                i++;
            while (v[j]>v[poz_piv])
                j--;
            if (i<=j)
            {
                interschimb(v[i], v[j]);
                i++;
                j--;
            }
 
        }
         quicksort(a, a, j);
         quicksort(i, i, b);
    }
}
int main()
{
    in>>N;
    for (int i=0;i<N;i++)
        in>>v[i];
    srand (time(NULL));
    quicksort(rand()%N, 0, N-1);
    for (int i=0;i<N;i++)
        out<<v[i]<<" ";
    return 0;
}