Pagini recente » Cod sursa (job #2039538) | Cod sursa (job #2387134) | Cod sursa (job #1165019) | Cod sursa (job #812153) | Cod sursa (job #1937767)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
void qs(vector<int> &a) {
if (a.size() < 2) {
return;
}
vector<int> a1, a2, a3;
int x = a[0];
while (a.size() > 0) {
int q = a.back();
if (q < x) a1.push_back(q);
else if (q == x) a2.push_back(q);
else a3.push_back(q);
a.pop_back();
}
qs(a1);
qs(a3);
a1.insert( a1.end(), a2.begin(), a2.end() );
a1.insert( a1.end(), a3.begin(), a3.end() );
a = a1;
}
int main() {
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int n;
cin>>n;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin>>a[i];
}
qs(a);
for (int i = 0; i < n; i++) {
cout<<a[i]<<" ";
}
return 0;
}