Pagini recente » Cod sursa (job #585721) | Statistici Lica Vlad Florian (licavlad) | Cod sursa (job #2387570) | Cod sursa (job #2060405) | Cod sursa (job #1318957)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,i,j,stg,drt;
long a[500001];
int prg(int stg,int drt)
{
int pivot=a[stg+rand()%(drt-stg+1)];
while(stg<=drt)
{
while(a[stg]<pivot)
stg++;
while(a[drt]>pivot)
drt--;
if(stg<=drt)
{
swap(a[stg],a[drt]);
stg++,drt--;
}
}
return stg ;
}
void quick(int stg,int drt)
{
if(stg<drt)
{
int k=prg(stg,drt);
quick(stg,k-1);
quick(k,drt);
}
}
int main()
{ f>>n;
for(i=1;i<=n;i++)
f>>a[i];
quick(1,n);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
f.close();
g.close();
return 0;
}