Cod sursa(job #1553273)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 19 decembrie 2015 15:23:23
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#include <cmath>
#include <ctime>
#define LE 500666

using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");
int a[LE];

void quick(int left,int right)
{
   if (left>=right) return;
   int D=rand()%(right-left+1);
   int val=a[left+D],i=left,j=right;



   while (i<j)
   {
   	   while (a[i]<val&&i<j) ++i;
   	   while (a[j]>val&&i<j) --j;

   	   swap(a[i],a[j]);
   	   ++i;
   	   --j;
   }

//  cout<<val<<"----->";
   //for(int it=left;it<=right;++it)  cout<<a[it]<<" ";
 //  cout<<'\n';

   quick(left,i-1);
   quick(i+1,right);
}

int main()
{

   srand(time(0));
   int n,i;
   f>>n;
   for(i=1;i<=n;++i) f>>a[i];

   quick(1,n);

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

	return 0;
}