问题一的代码:
package class02P;
import java.util.Arrays;
public class Code05P_SimpleNetherlandsFlag {
public static void SimpleNetherlandsFlag(int[] arr, int num){
int flag = -1;
int i = 0;
int tep;
while(i < arr.length) {
if(arr[i] > num) i++;
else{
tep = arr[++flag];
arr[flag] = arr[i];
arr[i++] = tep;
}
}
}
public static void main(String[] args) {
int[] arr = {5, 3 , 6, 4, 6 , 2, 4,5, 1, 0, 10};
SimpleNetherlandsFlag(arr, 5);
System.out.println(Arrays.toString(arr));
}
}
问题2的代码:
package class02P;
import java.util.Arrays;
public class Code05P_NetherlandsFlag {
public static void NetherlandFlag(int[] arr, int num){
int flagL = -1;
int flagG = arr.length;
int i = 0, tep;
while(i < flagG){
if(arr[i] < num){
tep = arr[++flagL];
arr[flagL] = arr[i];
arr[i++] = tep;
}else if(arr[i] == num){
i++;
}
else{
tep = arr[--flagG];
arr[flagG] = arr[i];
arr[i] = tep;
}
}
}
public static void main(String[] args) {
int[] a = {10, 9, 5, 5,4, 8, 6, 2, 5, 4, 1, 9, 10,7};
NetherlandFlag(a, 5);
System.out.println(Arrays.toString(a));
}
}