Pagini recente » Cod sursa (job #1421342) | Cod sursa (job #49051) | Cod sursa (job #1431067) | Cod sursa (job #2525511) | Cod sursa (job #1313753)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int N,i,j;
long v[500005];
int poz(int st,int dr)
{
int piv,k;
piv=v[st+rand()%(dr-st+1)];
while(st<dr)
{
if(v[st]>v[dr])
swap(v[st],v[dr]);
if(v[st]==piv)
dr--;
else
st++;
}
k=st;
return k;
}
void quick(int st,int dr)
{
if(st<dr)
{
int k=poz(st,dr);
quick(st,k-1);
quick(k+1,dr);
}
}
int main()
{
f>>N;
for(i=1;i<=N;i++)
f>>v[i];
quick(1,N);
for(i=1;i<=N;i++)
g<<v[i]<<" ";
f.close(); g.close();
return 0;
}