Pagini recente » Cod sursa (job #1463278) | Cod sursa (job #1226593) | Cod sursa (job #1819193) | Cod sursa (job #2202498) | Cod sursa (job #1459205)
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template <typename It>
void qsort(It s, It d){
cout << distance(s, d) << '\n';
if(distance(s, d) == 2){
if(*s > *(s+1)){
iter_swap(s, s+1); } }
else if(distance(s, d) > 2){
const int val = *s;
auto mij = partition(s, d, [val](const int v){
return v < val; });
if(distance(s, mij) > 1){
qsort(s, mij); }
if(distance(mij+1, d) > 1){
qsort(mij+1, d); } } }
int main(){
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
f >> n;
vector<int> v(n);
for(auto& x : v){
f >> x; }
qsort(begin(v), end(v));
for(const auto x : v){
g << x << ' '; }
return 0; }