void qsort1(int *a, int n){
if(n>1){
int l=0, r=n-1, m=n/2;
while(l<=r){
while(a[l]<a[m])l++;
while(a[r]>a[m])r--;
if(l<=r){
int t=a[l];
a[l]=a[r];
a[r]=t;
l++; r--;
}
}
}
}
void qsort2(int *a, int n){
if(n>1){
int l=0, r=n-1, m=n/2;
while(l<=m && m<r){
while(a[l]<=m)l++;
while(a[r]>=m)r--;
int t=a[l]; a[l]=a[r]; a[r]=t; l++; r--;
}
}
}
int main() {
int i, a[]={-1,1,-1,1,-1,1,-1,1,-1,1,-1};
for(i
=0;i
<sizeof(a
)/sizeof(int);i
++)printf("%d ", a
[i
]); qsort1(a, sizeof(a)/sizeof(int));
for(i
=0;i
<sizeof(a
)/sizeof(int);i
++)printf("%d ", a
[i
]); }
dm9pZCBxc29ydDEoaW50ICphLCBpbnQgbil7CiAgICBpZihuPjEpewogICAgICAgIGludCBsPTAsIHI9bi0xLCBtPW4vMjsKICAgICAgICB3aGlsZShsPD1yKXsKICAgICAgICAgICAgd2hpbGUoYVtsXTxhW21dKWwrKzsKICAgICAgICAgICAgd2hpbGUoYVtyXT5hW21dKXItLTsKICAgICAgICAgICAgaWYobDw9cil7CiAgICAgICAgICAgICAgICBpbnQgdD1hW2xdOwogICAgICAgICAgICAgICAgYVtsXT1hW3JdOwogICAgICAgICAgICAgICAgYVtyXT10OwogICAgICAgICAgICAgICAgbCsrOyByLS07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcXNvcnQoYSwgcisxKTsKICAgICAgICBxc29ydChhK2wsIG4tbCk7CiAgICAgICAgfQp9Cgp2b2lkIHFzb3J0MihpbnQgKmEsIGludCBuKXsKICAgIGlmKG4+MSl7CiAgICAgICAgaW50IGw9MCwgcj1uLTEsIG09bi8yOwogICAgICAgIHdoaWxlKGw8PW0gJiYgbTxyKXsKICAgICAgICAgICAgd2hpbGUoYVtsXTw9bSlsKys7CiAgICAgICAgICAgIHdoaWxlKGFbcl0+PW0pci0tOwogICAgICAgICAgICBpbnQgdD1hW2xdOyBhW2xdPWFbcl07IGFbcl09dDsgbCsrOyByLS07CiAgICAgICAgfQogICAgICAgIHFzb3J0KGEsIG0pOwogICAgICAgIHFzb3J0KGErbSwgbSk7CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgaW50IGksIGFbXT17LTEsMSwtMSwxLC0xLDEsLTEsMSwtMSwxLC0xfTsKICAgIGZvcihpPTA7aTxzaXplb2YoYSkvc2l6ZW9mKGludCk7aSsrKXByaW50ZigiJWQgIiwgYVtpXSk7CiAgICBxc29ydDEoYSwgc2l6ZW9mKGEpL3NpemVvZihpbnQpKTsKICAgIHByaW50ZigiXG4iKTsKICAgIGZvcihpPTA7aTxzaXplb2YoYSkvc2l6ZW9mKGludCk7aSsrKXByaW50ZigiJWQgIiwgYVtpXSk7Cn0=