Pagini recente » Istoria paginii runda/sim-oji-cls10-24.01 | Istoria paginii runda/eusebiu_oji_2012_cls10/clasament | Cod sursa (job #2623869) | Cod sursa (job #1817345) | Cod sursa (job #1023525)
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout ("algsort.out");
void quick(long left, long right,long a[])
{
long i = left, j = right;
long pivot = a[rand() % (j-i+1) + i];
while (i <= j)
{
while (a[i] < pivot)
i++;
while (a[j] > pivot)
j--;
if (i <= j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
if (left < j)
quick(left, j, a);
if (i < right)
quick(i, right, a);
}
int main()
{
long a[500001],n,i;
fin>>n;
for (i=1;i<=n;i++)
fin>>a[i];
quick(1,n,a);
for (i=1;i<=n;i++)
fout<<a[i]<<" ";
fin.close();
fout.close();
return 0;
}