Pagini recente » Cod sursa (job #867999) | Cod sursa (job #2973022) | Cod sursa (job #1402935) | Cod sursa (job #1529004) | Cod sursa (job #1506081)
#include<stdio.h>
#include<random>
#include<time.h>
FILE *in, *out;
#define MAX 500001
void inline swap(int &a, int&b)
{
int t;
t = a;
a = b;
b = t;
}
int v[MAX],N;
void quicksort(int i, int j)
{
if (i<j)
{
int pivot = i + rand() % (j - i + 1);
int s = i;
swap(v[pivot], v[j]);
for (int k = i;k < j;++k)
if (v[k] < v[j])
{
swap(v[s], v[k]);
++s;
}
swap(v[s], v[j]);
quicksort(i, s - 1);
quicksort(s + 1, j);
}
}
int main()
{
in = fopen("algsort.in", "r");
out = fopen("algsort.out", "w");
srand(time(NULL));
fscanf(in, "%d", &N);
for (int i = 1;i <= N;++i)
fscanf(in, "%d", &v[i]);
quicksort(1, N);
for (int i = 1;i <= N;++i)
fprintf(out, "%d ", v[i]);
return 0;
}