Pagini recente » Cod sursa (job #1616343) | Cod sursa (job #18916) | Cod sursa (job #1788741) | Cod sursa (job #3155155) | Cod sursa (job #1016041)
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;
void swap (int *v, int i1, int i2)
{
int aux = v[i1];
v[i1] = v[i2];
v[i2] = aux;
}
void quickSort (int *v, int left, int right)
{
// Do nothing
if (left >= right)
return;
// Set seed
// srand(time(NULL));
// Select a idx between left and right
int pivot = rand() % (right - left) + left;
swap (v, pivot, left);
int last = left;
for (int i = left + 1; i <= right; ++i)
if (v[i] < v[left])
swap (v, ++last, i);
swap (v, last, left);
quickSort (v, left, last - 1);
quickSort (v, last - 1, right);
}
int main ()
{
ifstream cin("algsort.in");
ofstream cout("algsort.out");
// Set seed
srand(time(NULL));
int n; cin >> n;
int v[500000];
for (int i = 0; i < n; ++i)
cin >> v[i];
quickSort(v, 0, n - 1);
for (int i = 0; i < n; ++i)
cout << v[i] << " ";
cin.close();
cout.close();
return 0;
}