#include <bits/stdc++.h>
using namespace std;
void QuickSort(vector<int>& in, int left, int right)
{
	if (right <= left)
		return;
	int ipi = left + rand() % (right - left + 1);
	swap(in[ipi], in[right]);
	int x = in[right];
	int m = left;
	for (int i = left; i < right; i++)
		if (in[i] <= x)
			swap(in[i], in[m++]);
	swap(in[m], in[right]);
	QuickSort(in, left, m);
	QuickSort(in, m + 1, right);
}

int main()
{
    vector<int> a = {5, 4, 3, 2, 1, 10, 8, 14, 7, 6, 11};
    int left = 0;
    int right = a.size() - 1;
    QuickSort(a, left, right);
    for(int x : a)
    {
        cout << x << ' ';
    }
}