Pagini recente » Cod sursa (job #584328) | Cod sursa (job #2024914) | Cod sursa (job #3844) | Cod sursa (job #398940) | Cod sursa (job #2059949)
#include <iostream>
#include <fstream>
#define Nmax 500003
#include <stdlib.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int pivotare (int s,int d,int v[])
{
int i,j,randpoz,randpiv;
randpoz=rand()% (d-s) +s;
randpiv=v[randpoz];
swap(v[d],v[randpoz]);
//andpiv=v[d];
i=s-1;
for (j=s;j<d;j++)
if (v[j]<randpiv)
{i++;
swap(v[i],v[j]);
}
swap(v[i+1],v[d]);
return i+1;
}
void QS(int s,int d,int v[])
{
if (s<d)
{
int p=pivotare(s,d,v);
QS(s,p-1,v);
QS(p+1,d,v);
}
}
int main()
{
int i,n,v[Nmax];
fin>>n;
for (i=1;i<=n;i++)
fin>>v[i];
QS(1,n,v);
for (i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}