public class BinarySearchExample {
public static void main(String[] args) {
int[] a = {1, 2, 3, 6, 7, 8, 10};
int b = 1;
int c = findIndex(b, a);
System.out.println(c); // 输出结果为0,因为1在数组中的索引是0
}
public static int findIndex(int target, int[] array) {
int left = 0;
int right = array.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2; // 防止(left+right)溢出
if (array[mid] == target) {
return mid; // 找到目标值,返回其索引
} else if (array[mid] < target) {
left = mid + 1; // 目标值在右半部分
} else {
right = mid - 1; // 目标值在左半部分
}
}
return -1; // 没有找到目标值,返回-1
}
}