给定一个数组arr和一个数num,把
public static int[] patition(int[] arr,int L,int R,int num) {
int less = L-1;//小于区域
int more = R+1;//大于区域
int cur = L;//当前位置
while(cur<more) {
if(arr[cur]<num) {//当前数小
swap(arr,++less,cur++);
}else if(arr[cur]>num) {//当前数大
swap(arr,--more,cur);
}else {//相等
cur++;
}
}
return new int[] {less+1,more-1};
}
public static void swap(int[] arr,int i,int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}