Pagini recente » Cod sursa (job #345067) | Cod sursa (job #2235866) | Cod sursa (job #2028137) | Cod sursa (job #1293145) | Cod sursa (job #2897340)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500005];
void Quicksort(int st, int fn, int *v)
{
if(st >= fn)
return;
int pivot;
pivot = rand() % (fn - st + 1) + st;
swap(v[pivot], v[fn]);
int cnt = st;
for(int i = st; i <= fn; i++)
if(v[i] < v[fn])
swap(v[i], v[cnt++]);
swap(v[cnt], v[fn]);
Quicksort(st, cnt - 1, v);
Quicksort(cnt + 1, fn, v);
}
int main()
{
int n;
srand(time(0));
fin >> n;
for(int i = 1; i <= n; i++)
fin >> v[i];
Quicksort(1, n, v);
for(int i = 1; i <= n; i++)
fout << v[i] << " ";
return 0;
}