java递归方式实现二分查找
时间: 2023-10-14 11:54:48 浏览: 48
下面是使用递归方式实现二分查找的Java代码示例:
```java
public class BinarySearchRecursive {
public static int binarySearch(int[] array, int target) {
return binarySearch(array, target, 0, array.length - 1);
}
private static int binarySearch(int[] array, int target, int low, int high) {
if (low > high) {
return -1; // 如果找不到目标元素,返回-1
}
int mid = (low + high) / 2;
if (array[mid] == target) {
return mid; // 找到目标元素,返回索引
} else if (array[mid] > target) {
return binarySearch(array, target, low, mid - 1); // 在左半部分继续查找
} else {
return binarySearch(array, target, mid + 1, high); // 在右半部分继续查找
}
}
public static void main(String[] args) {
int[] array = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
int target = 12;
int result = binarySearch(array, target);
if (result == -1) {
System.out.println("目标元素不在数组中");
} else {
System.out.println("目标元素的索引为: " + result);
}
}
}
```
在上述代码中,`binarySearch`方法是递归实现的二分查找。它接收一个有序数组、目标元素以及搜索范围的上下界。首先,它检查是否找到了目标元素,如果找到则返回对应的索引。如果没有找到,它将中间元素与目标元素进行比较,并根据比较结果决定在左半部分或右半部分继续递归查找。如果最终未找到目标元素,则返回-1。
在`main`方法中,我们创建了一个有序数组`array`,并使用`binarySearch`方法查找目标元素`target`。根据返回的结果,我们输出对应的信息。
希望这个例子对你有帮助!