编写 Java程序, 设计MyArray2类来实现以下要求: 使用二分法查询数组中的元素是否存在。数组元素个数可以由用户确定, 数组元素值也可由用户输入
时间: 2024-11-06 10:21:31 浏览: 26
在Java中,你可以创建一个名为MyArray2的类,使用二分查找算法来实现用户动态输入数组并查询元素的功能。以下是简单的实现步骤:
```java
import java.util.Scanner;
class BinarySearch {
// 二分查找方法
public static boolean binarySearch(int[] arr, int target) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return true;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
}
public class MyArray2 {
private int[] elements;
public MyArray2(int size) {
elements = new int[size];
}
public void insertElement(int value) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个元素值:" + value + " ");
elements[nextIndex()] = value;
scanner.close();
}
private int nextIndex() {
return elements.length >= 1 ? elements.length : 0;
}
public boolean searchElement(int target) {
return BinarySearch.binarySearch(elements, target);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数组元素个数:");
int size = scanner.nextInt();
MyArray2 array = new MyArray2(size);
System.out.println("现在开始输入元素:");
for (int i = 0; i < size; i++) {
array.insertElement(scanner.nextInt());
}
System.out.print("请输入要查找的目标值:");
int target = scanner.nextInt();
if (array.searchElement(target)) {
System.out.println("目标值存在于数组中.");
} else {
System.out.println("目标值不存在于数组中.");
}
scanner.close();
}
}
```
这个程序首先让用户输入数组的大小,然后逐个输入元素。当询问是否需要查找目标值时,用户会再次输入目标值,程序会使用二分查找算法检查该值是否在数组中。
阅读全文