Pagini recente » Cod sursa (job #2177142) | Cod sursa (job #2676760) | Cod sursa (job #2468305) | Cod sursa (job #2520404) | Cod sursa (job #1224224)
#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, pivot;
if(left >= right - 1)
return;
pos = rand() % (right - left) + left;
pivot = v[pos];
for(i = left, j = right - 1 ; i < j ; )
{
while(v[i] < pivot)
i++;
while(v[j] > pivot)
j--;
if(i < j)
swap(v[i], v[j]);
}
quick_sort(left, j);
quick_sort(j+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;
}