public class Main {
public static void main(String[] args) {
int[] arr = new int[]{2, 12, 23, 54, 75, 100, 128, 200};
System.out.println("查找结果:" + find(arr, 100));
System.out.println("查找下标:" + search(arr, 100));
System.out.println("也可以用下标值判断输出布尔值");
int x = search(arr, 100);
boolean flag = x == -1 ? false : true;
if (!flag) {
System.out.println("查找结果:" + false);
} else {
System.out.println("查找结果:" + true + "\n下标为:" + x);
}
}
public static boolean find(int[] arr, int target) {
if (arr == null || arr.length == 0) {
return false;
}
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (target == arr[mid]) {
return true;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
public static int search(int[] arr, int target) {
if (arr == null || arr.length == 0) {
return -1;
}
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (target == arr[mid]) {
return mid;
} else if (target < arr[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
}
输出:
查找结果:true
查找下标:5
也可以用下标值判断输出布尔值
查找结果:true
下标为:5