Pagini recente » Rating Cretu Iulian (c912066) | Cod sursa (job #420145) | Profil rockoana | Monitorul de evaluare | Cod sursa (job #2553544)
#include <bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
vector <int> a;
void quickSort(int left, int right, int n)
{
if (left >= right)
return;
int i = left, j = right;
int pivot = a[left + (rand() % (right - left + 1))];
while (i <= j)
{
while (i <= right && a[i] < pivot)
i ++;
while (j >= left && a[j] > pivot)
j --;
if (i <= right && j >= left && i <= j)
{
swap(a[i], a[j]);
i ++;
j --;
}
}
quickSort(left, j, n);
quickSort(i, right, n);
}
int main()
{
int n;
f >> n;
a.resize(n + 1);
for (int i = 1; i <= n; ++ i)
f >> a[i];
srand(time(NULL));
quickSort(1, n, n);
for (int i = 1; i <= n; ++ i)
g << a[i] << " ";
}