设计MyArray2类来实现以下要求: 使用二分法查询数组中的元素是否存在。数组元素个数可以由用户确定, 数组元素值也可由用户输入 java
时间: 2024-11-09 14:21:56 浏览: 40
设计一个名为`MyArray2`的Java类来满足这些要求,我们可以创建一个动态大小的整型数组,并实现一个二分查找方法来检查特定值是否存在于数组中。以下是这个类的基本结构:
```java
import java.util.Arrays;
public class MyArray2 {
private int[] array; // 存储整数值的数组
private int size; // 当前数组的大小
public MyArray2(int initialSize) {
this.array = new int[initialSize];
this.size = 0;
}
// 添加元素到数组,如果需要扩展数组,就扩大一倍
public void addElement(int value) {
if (size == array.length) {
resize(2 * array.length);
}
array[size++] = value;
}
// 二分查找方法
public boolean binarySearch(int target) {
return binarySearch(0, size - 1, target);
}
private boolean binarySearch(int left, int right, int target) {
if (left > right) {
return false;
}
int mid = left + (right - left) / 2;
if (array[mid] == target) {
return true;
} else if (array[mid] < target) {
return binarySearch(mid + 1, right, target);
} else {
return binarySearch(left, mid - 1, target);
}
}
// 扩大数组的容量
private void resize(int newSize) {
int[] newArray = new int[newSize];
System.arraycopy(array, 0, newArray, 0, size);
array = newArray;
}
public static void main(String[] args) {
MyArray2 myArray = new MyArray2(5);
myArray.addElement(1);
myArray.addElement(3);
myArray.addElement(5);
myArray.addElement(7);
myArray.addElement(9);
System.out.println("Does 5 exist in the array? " + myArray.binarySearch(5));
System.out.println("Does 4 exist in the array? " + myArray.binarySearch(4));
}
}
```
阅读全文
相关推荐










