Pagini recente » Cod sursa (job #3141661) | Cod sursa (job #47781) | Cod sursa (job #2678392) | Cod sursa (job #2207747) | Cod sursa (job #476114)
Cod sursa(job #476114)
#include <fstream>
#include <algorithm>
using namespace std;
#define NMAX 500050
int V[NMAX], n, i;
void read ();
void quicksort (int[], int, int);
int partition (int[], int, int);
void print_sol ();
int main () {
ifstream f ("algsort.in");
ofstream g ("algsort.out");
f >> n;
for (i = 1; i <= n; i++)
f >> V[i];
quicksort (V, 1, n);
for (i = 1; i <= n; i++)
g << V[i] << " ";
return 0;
}
void quicksort (int V[], int p, int u) {
int pivot;
if (p < u) {
pivot = partition (V, p, u);
quicksort (V, p, pivot - 1);
quicksort (V, pivot + 1, u);
}
}
int partition (int V[], int p, int u) {
int x, i, j;
x = V[u];
i = p - 1;
for (j = p; j < u; j++)
if (V[j] <= x) {
i++;
swap (V[i], V[j]);
}
swap (V[i+1], V[u]);
return i + 1;
}