Cod sursa(job #1023525)

Utilizator medeea0507Medeea Lazea medeea0507 Data 7 noiembrie 2013 09:43:35
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;

ifstream fin("algsort.in");
ofstream fout ("algsort.out");

void quick(long left, long right,long a[])
 {
  long i = left, j = right;
  long pivot = a[rand() % (j-i+1) + i];
  while (i <= j)
    {
        while (a[i] < pivot)
              i++;
        while (a[j] > pivot)
              j--;
        if (i <= j)
            {
              swap(a[i],a[j]);
              i++;
              j--;
            }
    }

  if (left < j)
      quick(left, j, a);
  if (i < right)
      quick(i, right, a);
}

int main()
{
    long a[500001],n,i;
    fin>>n;
    for (i=1;i<=n;i++)
        fin>>a[i];
   quick(1,n,a);
    for (i=1;i<=n;i++)
        fout<<a[i]<<" ";
    fin.close();
    fout.close();
    return 0;
}