Pagini recente » Cod sursa (job #881383) | Cod sursa (job #1188971) | Cod sursa (job #422664) | Cod sursa (job #1529575) | Cod sursa (job #2434619)
#include <bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
const int N = 500010;
int n, v[N];
void quick_sort(int, int);
int main()
{
srand(time(0));
f >> n;
for(int i = 1; i <= n; i++)
f >> v[i];
quick_sort(1, n);
for(int i = 1; i <= n; i++)
g << v[i] << ' ';
return 0;
}
void quick_sort(int left, int right)
{
if(left>=right)return;
int mi = left+rand()%(right-left+1), st = left, dr = right;
int pivot = v[mi];
do
{
while(v[st] < pivot)
st++;
while(v[dr] > pivot)
dr--;
if(st <= dr)
{
swap(v[st], v[dr]);
st++;
dr--;
}
}
while(st <= dr);
quick_sort(left, dr);
quick_sort(st, right);
}