Pagini recente » Cod sursa (job #1342710) | Cod sursa (job #2636182) | Cod sursa (job #2748473) | Cod sursa (job #1554215) | Cod sursa (job #2863160)
#include <bits/stdc++.h>
using namespace std;
class Task {
public:
vector<int> v;
int n;
void solve() {
fill("algsort.in");
qsort(0, n - 1);
print("algsort.out");
}
private:
void fill(string file_name) {
ifstream fin(file_name);
fin >> n;
int x;
for (int i = 0; i < n; i ++) {
fin >> x;
v.push_back(x);
}
fin.close();
}
void qsort(int l, int r) {
if (l < r) {
int pi = partition(l, r);
qsort(l, pi - 1);
qsort(pi + 1, r);
}
}
int partition(int l, int r) {
int x = v[r];
int i = l;
for (int j = l; j < r; j ++) {
if (v[j] <= x) {
swap(v[i ++], v[j]);
}
}
swap(v[i], v[r]);
return i;
}
void print(string fileName) {
ofstream fout(fileName);
for (int i = 0; i < n; i ++) {
fout << v[i] << " ";
}
fout.close();
}
};
int main(void) {
auto* obj = new (nothrow) Task();
obj->solve();
}