Pagini recente » Cod sursa (job #2139339) | Cod sursa (job #368063) | Cod sursa (job #2177290) | Cod sursa (job #567286) | Cod sursa (job #612772)
Cod sursa(job #612772)
#include<fstream.h>
#define N 500005
ifstream f("algsort.in");
ofstream g("algsort.out");
int A[N];
int n;
int swap(int i, int j) {
int aux = A[i];
A[i] = A[j];
A[j] = aux;
}
int partition(int left, int right) {
int x = A[right];
int i = left - 1;
for(int j = left; j < right; j++) {
if (A[j] <= x) {
i++;
swap(i,j);
}
}
swap(i + 1, right);
return i + 1;
}
int qsort(int st, int dr) {
if (st < dr) {
int p = partition(st, dr);
qsort(st, p - 1);
qsort(p + 1, dr);
}
}
void read() {
f >> n;
for(int i = 1; i <= n; i++) {
f >> A[i];
}
}
void write() {
for(int i = 1; i <= n; i++) {
g << A[i] << " ";
}
}
int main() {
read();
qsort(1, n);
write();
}