Cod sursa(job #1240598)

Utilizator RaileanuCristian Raileanu Raileanu Data 11 octombrie 2014 18:51:44
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include<stdlib.h>
#include<time.h>
using namespace std;
#define MX 500010
ifstream f1("algsort.in");
ofstream f2("algsort.out");

int a[MX],n,i;

void quick(int st, int dr)
{
    if (st>=dr) return;

    int x= a[rand() % (dr-st+1) +st], i=st, j=dr,t;

    while (i<=j)
    {
        while (i<dr && a[i]<x ) i++;
        while (j>st && a[j]>x ) j--;
        if (i<=j)
        { t=a[i];
          a[i]=a[j];
          a[j]=t;
          i++; j--;}
    }
    if (j>st)
        quick(st,j);
    if (i<dr)
        quick(i,dr);
}

int main()
{
    f1>>n;
    for (i=1;i<=n;i++)
        f1>>a[i];

    srand(time(NULL) );
    quick(1,n);

    for (i=1;i<=n;i++)
        f2<<a[i]<<" ";
    f2.close();
    return 0;
}