Pagini recente » Cod sursa (job #2276202) | Cod sursa (job #1535453) | Cod sursa (job #268874) | Cod sursa (job #1334668) | Cod sursa (job #1316075)
#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;
piv=v[st+rand()%(dr-st+1)];
while(st<=dr)
{
while(v[st]<piv)
st++;
while(v[dr]>piv)
dr--;
if(st<=dr)
{
swap(v[st],v[dr]);
st++,dr--;
}
}
return st ;
}
void quick(int st,int dr)
{
if(st<dr)
{
int k=poz(st,dr);
quick(st,k-1);
quick(k,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;
}