Pagini recente » Cod sursa (job #1917283) | Cod sursa (job #1158123) | Cod sursa (job #1680074) | Cod sursa (job #1084924) | Cod sursa (job #1785541)
/* Sortare folosita: QSort */
//#include <fstream>
#include <cstdio>
#include <algorithm>
using namespace std;
#define Nmax 500002
/*
ifstream fin("algsort.in");
ofstream fout("algsort.out");
*/
FILE *f = fopen("algsort.in", "r");
FILE *g = fopen("algsort.out", "w");
int v[Nmax];
int Partitionare(int st, int dr) {
int pivot = v[dr];
int i = st;
for (int j = st; j < dr; ++j) {
if (v[j] <= pivot) {
swap(v[i], v[j]);
i++;
}
}
swap(v[i], v[dr]);
return i;
}
void QSort(int st, int dr) {
if (st >= dr)
return;
int poz = Partitionare(st, dr);
QSort(st, poz - 1);
QSort(poz + 1, dr);
};
int main() {
int N;
fscanf(f, "%d", &N);//fin >> N;
for (int i = 1; i <= N; ++i)
fscanf(f, "%d", &v[i]); //fin >> v[i];
random_shuffle(v + 1, v + N + 1);
QSort(1, N);
for (int i = 1; i <= N; ++i)
fprintf(g, "%d ", v[i]);//fout << v[i] << " ";
return 0;
}