Pagini recente » Cod sursa (job #16523) | Cod sursa (job #2366367) | Cod sursa (job #529300) | Cod sursa (job #985687) | 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;
}