Pagini recente » Cod sursa (job #2241019) | Cod sursa (job #2866202) | Cod sursa (job #961523) | Cod sursa (job #1856283) | Cod sursa (job #1224131)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#define MAX_LENGTH 500005
using namespace std;
int v[MAX_LENGTH];
void quick_sort(int left, int right)
{
int i, j, pos;
if(left >= right - 1)
return;
pos = rand() % (right - left) + left;
swap(v[pos], v[left]);
for(i = left, j = left + 1 ; j < right ; j++)
if(v[j] < v[left])
{
swap(v[i+1], v[j]);
i++;
}
swap(v[left], v[i]);
quick_sort(left, i);
quick_sort(i+1, right);
}
int main()
{
int n, i;
fstream f("algsort.in", ios::in);
fstream g("algsort.out", ios::out);
f >> n;
for(i = 0 ; i < n ; i++)
f >> v[i];
srand(time(NULL));
quick_sort(0, n);
for(i = 0 ; i < n ; i++)
g << v[i] << " ";
return 0;
}