#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void quick_sort(int *a, int imin, int imax) {
if (imax <= imin) return ;
int imid = (imin + imax)/2;
int pivot = a[imid];
swap(&a[imid], &a[imax-1]);
int i, j = imin;
for (i = imin; i < imax-1; i += 1) {
if (a[i] < pivot) {
swap(&a[i], &a[j]);
j += 1;
}
}
swap(&a[j], &a[imax-1]);
quick_sort(a, imin, j);
quick_sort(a, j+1, imax);
}
int main() {
int i;
int a[6] = {6, 9, 5, 2, 8, 1};
for (i = 0; i < 6; i += 1)
quick_sort(a, 0, 6);
for (i = 0; i < 6; i += 1)
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKCnZvaWQgc3dhcChpbnQgKmEsIGludCAqYikgewogICAgaW50IHRlbXAgPSAqYTsKICAgICphID0gKmI7CiAgICAqYiA9IHRlbXA7Cn0KCnZvaWQgcXVpY2tfc29ydChpbnQgKmEsIGludCBpbWluLCBpbnQgaW1heCkgewogICAgaWYgKGltYXggPD0gaW1pbikgcmV0dXJuIDsKICAgIGludCBpbWlkID0gKGltaW4gKyBpbWF4KS8yOwogICAgaW50IHBpdm90ID0gYVtpbWlkXTsKICAgIHN3YXAoJmFbaW1pZF0sICZhW2ltYXgtMV0pOwogICAgaW50IGksIGogPSBpbWluOwogICAgZm9yIChpID0gaW1pbjsgaSA8IGltYXgtMTsgaSArPSAxKSB7CiAgICAgICAgaWYgKGFbaV0gPCBwaXZvdCkgewogICAgICAgICAgICBzd2FwKCZhW2ldLCAmYVtqXSk7CiAgICAgICAgICAgIGogKz0gMTsKICAgICAgICB9CiAgICB9CiAgICBzd2FwKCZhW2pdLCAmYVtpbWF4LTFdKTsKICAgIHF1aWNrX3NvcnQoYSwgaW1pbiwgaik7CiAgICBxdWlja19zb3J0KGEsIGorMSwgaW1heCk7Cn0KCmludCBtYWluKCkgewogICAgaW50IGk7CiAgICBpbnQgYVs2XSA9IHs2LCA5LCA1LCAyLCA4LCAxfTsKICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpICs9IDEpCiAgICAgICAgcHJpbnRmKCIlZCAiLCBhW2ldKTsKICAgIHByaW50ZigiXG4iKTsKICAgIHF1aWNrX3NvcnQoYSwgMCwgNik7CiAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSArPSAxKQogICAgICAgIHByaW50ZigiJWQgIiwgYVtpXSk7CiAgICByZXR1cm4gMDsKfQo=