Cod sursa(job #2294864)

Utilizator lucianistratiIstrati Lucian lucianistrati Data 2 decembrie 2018 21:31:47
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using namespace std;
int v[500001];
int pivotare(int v[],int st, int dr)
{
    srand(time(NULL));
    int aux,aux1,aux2,aux3;
    aux1=st+rand()%(dr-st);
    aux2=st+rand()%(dr-st);
    aux3=st+rand()%(dr-st);
    aux=(aux1+aux2+aux3)/3;
    return aux;
}
void QuickSort(int v[],int st, int dr)
{
	if(st<dr)
    {
	int i,j,pivot=pivotare(v,st,dr);
    i=st;
    j=dr;
    while(i<=j)
    {
        while(v[i]<pivot)
        {
            i++;
        }
        while(v[j]>pivot)
        {
            j--;
        }
        if(i<=j)
        {
            swap(v[i],v[j]);
            i++;
            j--;
        }
    }
	QuickSort(v,st,pivot);
    QuickSort(v,pivot+1,dr);
    }
}
int main()
{
    int N,i;
    ifstream fin("algsort.in");
    ofstream fout("algsort.out");
    fin>>N;
    for(i=0;i<=N-1;i++)
    {
        fin>>v[i];
    }
    QuickSort(v,0,N-1);
    for(i=0;i<=N-1;i++)
    {
        fout<<v[i]<<" ";
    }
    return 0;
}