Pagini recente » Cod sursa (job #2352904) | Cod sursa (job #2073272) | Cod sursa (job #2579061) | Cod sursa (job #464232) | Cod sursa (job #2172285)
#include <bits/stdc++.h>
using namespace std;
int v[500005], n;
void quick(int st, int dr)
{
int l = st, r = dr, x, piv = st+rand()%(dr-st+1);
swap(v[l], v[piv]);
x = v[l];
while(l < r){
while(l < r && v[r] >= x)
--r;
v[l] = v[r];
while(l < r && v[l] <= x)
++l;
v[r] = v[l];
}
v[l] = x;
if(l-1 > st)
quick(st, l-1);
if(l+1 < dr)
quick(l+1, dr);
}
int main()
{
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
fin >> n;
for (int i = 1; i <= n; ++i)
fin >> v[i];
srand(time(NULL));
quick(1, n);
for (int i = 1; i <= n; ++i)
fout << v[i] << " ";
return 0;
}