#include <stdio.h>
int find(int num[], int b, int e){
int temp = num[b];
int i = b;
int j = e;
while(i < j){
while(i < j && num[j] > temp) j--;
if(i < j){
num[i] = num[j];
i++;
}
while(i < j && num[i] < temp) i++;
if(i < j){
num[j] = num[i];
j--;
}
}
num[i] = temp;
return i;
}
kp(int num[], int b, int e){
int n;
n = find(num, b, e);
if(n > b){
kp(num, b, n - 1);
}
if(n < e){
kp(num, n + 1, e);
}
}
main(){
int i;
int num[] = {1, -2, 3, 10, -4, 7, 2, -5,};
kp(num, 0, 7);
for(i = 0; i < 8; i++) printf("%d ",num[i]);
}