荷兰国旗问题
/** * 荷兰国旗问题 java写法 */ public class NetherlandsFlag { public static int[] partition(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++); //或者写成下面的形式 /*swap(arr,++less,cur); cur++;*/ }else if(arr[cur]>num){ swap(arr,--more,cur); //这里互换位置 cur不跳到下一个位置 }else{ //=num的情况 cur++; } } return new int[] {less+1,more-1} } }