package com.nanjia.chapter1;
public class NetherlandsFlag {
//荷兰国旗代码逻辑
public static void partition(int[] arr, int left, int right, int point) {
int less = left - 1;
int more = right + 1;
while (left < more) {
if (arr[left] < point) {
swap(arr, ++less, left++);
} else if (arr[left] > point) {
swap(arr, --more, left);
} else {
left++;
}
}
}
//交换函数
public static void swap(int[] arr, int a1, int a2) {
int t = arr[a1];
arr[a1] = arr[a2];
arr[a2] = t;
}
//打印数组
public static void printArray(int[] arr) {
for (int arr1: arr) {
System.out.print(arr1 + " ");
}
}
//主函数
public static void main(String[] args) {
int[] arr = {2, 4, -1, 5, -3};
partition(arr, 0, arr.length - 1, -1);
printArray(arr);
}
}
荷兰国旗问题
最新推荐文章于 2023-05-25 21:48:02 发布