Pagini recente » Cod sursa (job #1352820) | Cod sursa (job #1374823) | Cod sursa (job #697027) | Cod sursa (job #81778) | Cod sursa (job #1313970)
#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 + 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;
}