Pagini recente » Cod sursa (job #2373104) | Cod sursa (job #589803) | Cod sursa (job #1337509) | Cod sursa (job #2403068) | Cod sursa (job #2245359)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N;
int v[500005];
void QuickSort(int lf, int rg)
{
int st = lf, dr = rg, pivot = (rand() % (rg - lf + 1)) + lf;
int val = v[pivot];
do
{
while(st < rg && v[st] < val)
st++;
while(dr > lf && v[dr] > val)
dr--;
if(st <= dr)
{
swap(v[st], v[dr]);
++st, --dr;
}
}while(st <= dr);
if(lf < dr)
QuickSort(lf, dr);
if(rg > st)
QuickSort(st, rg);
}
int main()
{
fin >> N;
for(int i = 1; i <= N; i++)
fin >> v[i];
QuickSort(1, N);
for(int i = 1; i <= N; i++)
fout << v[i] << ' ';
return 0;
}