利用Scanner语句输入一些数据,存入数组中,自定义一个数据target,利用二分查找法,找到他在数组中的下标,并返回。
时间: 2024-05-03 21:19:19 浏览: 50
以下是示例代码:
```java
import java.util.Scanner;
public class BinarySearch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入数据,存入数组
System.out.println("请输入数据,以空格分隔:");
String input = scanner.nextLine();
String[] strArray = input.split(" ");
int[] dataArray = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
dataArray[i] = Integer.parseInt(strArray[i]);
}
// 输入target
System.out.println("请输入要查找的数字:");
int target = scanner.nextInt();
// 调用二分查找方法
int index = binarySearch(dataArray, target);
if (index == -1) {
System.out.println("未找到该数字。");
} else {
System.out.println("该数字在数组中的下标为:" + index);
}
}
/**
* 二分查找算法
*
* @param array 待查找数组,必须有序
* @param target 要查找的数字
* @return 数字在数组中的下标,未找到返回-1
*/
public static int binarySearch(int[] array, int target) {
int left = 0;
int right = array.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (array[mid] == target) {
return mid;
} else if (array[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
}
```
运行程序后,输入一些数字,然后输入要查找的数字,程序会输出该数字在数组中的下标。如果未找到该数字,程序会输出“未找到该数字。”
阅读全文