#include <iostream> #include<algorithm> #include<vector> using namespace std; void swap(int& a, int& b) { int t = a; a = b; b = t; } void quicksort(vector<int>&ptr,int begin,int end) { if (begin < ptr.size() && end < ptr.size()) { int base = ptr[begin]; int i = begin, j = end; /*for (auto a : ptr) cout << a << ends; cout << endl;*/ //cout << i << " " << j << endl; if (begin < end) { while (i < j) { if (ptr[j] < base) { if (ptr[i] > base) { swap(ptr[i], ptr[j]); } else i++; } else j--; } swap(ptr[begin], ptr[i]); for (auto a : ptr) cout << a << ends; cout << endl; quicksort(ptr, begin, i - 1); quicksort(ptr, i + 1, end); } } }; int main() { vector<int>a{ 61,177,61,74,19,31,45,55,101,81 }; for (auto i : a)cout << i << ends; cout << endl; quicksort(a,0,a.size()-1); for (auto i : a)cout << i << ends; }