#include <iostream>
using namespace std;
void swap1(int tab[], int zamiana1, int zamiana2)
{
int temp = tab[zamiana1];
tab[zamiana1] = tab[zamiana2];
tab[zamiana2] = temp;
}
void qSort(int tab[],int left, int right)
{
if (left < right)
{
int m = left;
for (int i = left+1; i < right; i++)
if (tab[left] > tab[i])
{
m++;
swap1(tab, i, m);
}
swap1(tab, m, left);
qSort(tab, left, m - 1);
qSort(tab, m + 1, right);
}
}
int main()
{
int tab[] = { 4,3,5,2,5,6,5,2,3,5,3,2,234,21,1,35,13,2,3,45 };
qSort(tab, 0,20);
for (int i = 0; i < 20; i++)
cout << tab[i] << endl;
return 0;
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBzd2FwMShpbnQgdGFiW10sIGludCB6YW1pYW5hMSwgaW50IHphbWlhbmEyKQp7CglpbnQgdGVtcCA9IHRhYlt6YW1pYW5hMV07Cgl0YWJbemFtaWFuYTFdID0gdGFiW3phbWlhbmEyXTsKCXRhYlt6YW1pYW5hMl0gPSB0ZW1wOwp9CnZvaWQgcVNvcnQoaW50IHRhYltdLGludCBsZWZ0LCBpbnQgcmlnaHQpCnsKCWlmIChsZWZ0IDwgcmlnaHQpIAoJewoJCWludCBtID0gbGVmdDsKCQlmb3IgKGludCBpID0gbGVmdCsxOyBpIDwgcmlnaHQ7IGkrKykKCQkJaWYgKHRhYltsZWZ0XSA+IHRhYltpXSkKCQkJewoJCQkJbSsrOwoJCQkJc3dhcDEodGFiLCBpLCBtKTsKCQkJfQoJCXN3YXAxKHRhYiwgbSwgbGVmdCk7CgoJCXFTb3J0KHRhYiwgbGVmdCwgbSAtIDEpOwoJCXFTb3J0KHRhYiwgbSArIDEsIHJpZ2h0KTsKCX0KfQoKCmludCBtYWluKCkKewoJaW50IHRhYltdID0geyA0LDMsNSwyLDUsNiw1LDIsMyw1LDMsMiwyMzQsMjEsMSwzNSwxMywyLDMsNDUgfTsKCXFTb3J0KHRhYiwgMCwyMCk7Cglmb3IgKGludCBpID0gMDsgaSA8IDIwOyBpKyspCgkJY291dCA8PCB0YWJbaV0gPDwgZW5kbDsKCXJldHVybiAwOwp9CgoK