Pagini recente » Cod sursa (job #125666) | Cod sursa (job #3175638) | Cod sursa (job #470252) | Cod sursa (job #1962686) | Cod sursa (job #1394824)
#include <ctime>
#include <cstdlib>
#include <fstream>
#include <algorithm>
using namespace std;
long long a[500000];
int part(long long A[], int l, int r) {
int poz = rand() % (r - l + 1) + l;
long long pivot = A[poz];
swap(A[poz], A[r]);
int i = l - 1;
for (int j = l; j < r; j++)
if (A[j] <= pivot) {
i++;
swap(A[i], A[j]);
}
swap(A[i + 1], A[r]);
return i + 1;
}
void QS(long long A[], int l, int r) {
if (l < r) {
int q = part(A, l, r);
QS(A, l, q - 1);
QS(A, q + 1, r);
}
}
int main() {
srand(time(0));
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, i;
fin >> n;
for (i = 0; i < n; i++)
fin >> a[i];
QS(a, 0, n - 1);
for (i = 0; i < n; i++)
fout << a[i] << ' ';
return 0;
}