Cod sursa(job #2059949)

Utilizator gundorfMoldovan George gundorf Data 7 noiembrie 2017 19:16:35
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#define Nmax 500003
#include <stdlib.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");

int pivotare (int s,int d,int v[])
{
    int i,j,randpoz,randpiv;
    randpoz=rand()% (d-s) +s;
    randpiv=v[randpoz];
    swap(v[d],v[randpoz]);
    //andpiv=v[d];
    i=s-1;
    for (j=s;j<d;j++)
        if (v[j]<randpiv)
    {i++;
    swap(v[i],v[j]);

    }

    swap(v[i+1],v[d]);
    return i+1;
}

void QS(int s,int d,int v[])
{
    if (s<d)
    {
        int p=pivotare(s,d,v);
        QS(s,p-1,v);
        QS(p+1,d,v);
    }
}

int main()
{
   int i,n,v[Nmax];
   fin>>n;
   for (i=1;i<=n;i++)
    fin>>v[i];
   QS(1,n,v);
    for (i=1;i<=n;i++)
        fout<<v[i]<<" ";
    return 0;
}