#include <cstdio>
int partition(int a[], int p, int r)
{
int x = a[r];
int i = p-1;
int tmp = 0;
for (int j = p; j < r; ++j) {
if (a[j] <= x) {
++i;
tmp = a[j];
a[j] = a[i];
a[i] = tmp;
}
}
++i;
a[r] = a[i];
a[i] = x;
return i;
}
void qsort(int a[], int p, int r)
{
if (p < r) {
int q = partition(a, p ,r);
qsort(a, p, q-1);
qsort(a, q+1, r);
}
}
int main()
{
int a[10] = {999,2,8,7,1,3,6,5,4};
qsort(a,1,8);
for (int i = 1; i <= 8; ++i)
printf("%d ", a[i]);
while (true);
return 0;
}