Pagini recente » Cod sursa (job #154512) | Cod sursa (job #1402676) | Cod sursa (job #2272049) | Cod sursa (job #2300890) | Cod sursa (job #2085486)
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <ctime>
#define MaxN 500001
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int N, a[MaxN];
void QSort(int e, int v)
{
int x, i, j;
if (v>e)
{
i = rand()%(v-e+1) + e;
swap(a[i], a[e]);
i = e;
x = a[i];
j = v;
while (i<j)
{
while (x <= a[j] && j>i)
j--;
a[i] = a[j];
while (x >= a[i] && j>i)
i++;
a[j] = a[i];
}
a[i] = x;
QSort(e, i);
QSort(i+1, v);
}
}
int main()
{
f>>N;
for (int i=0;i<N;i++)
f>>a[i];
srand(time(NULL));
QSort(0, N-1);
for (int i=0;i<N;i++)
g<<a[i]<<' ';
}