Cod sursa(job #1510721)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 25 octombrie 2015 15:49:13
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <iostream>

using namespace std;

#include <cmath>
#include <ctime>
#include <cstdlib>

#define LE 500613

void qsort(int st,int dr,int A[])
{
    if (st>=dr) return;
    int P=st+(rand()%(dr-st+1));
    int val=A[P],i,left=st-1;

    swap(A[dr],A[P]);
    int aux;

    for(i=st;i<=dr;++i)
              if (A[i]<=val)
              {
                    ++left;
                    aux=A[i];
                    A[i]=A[left];
                    A[left]=aux;
              }

     qsort(st,left-1,A);
     qsort(left+1,dr,A);
}

int A[LE];

ifstream f("algsort.in");
ofstream g("algsort.out");

int main()
{
   srand(time(0));
   int n,i;
   f>>n;
  for( i=1;i<=n;++i) f>>A[i];
  qsort(1,n,A);

  for(i=1;i<=n;++i) g<<A[i]<<" ";

   return 0;
}