java 用递归的方法实现二分查找
时间: 2024-11-30 21:15:04 浏览: 5
Java实现二分查找的递归和非递归算法
在Java中,二分查找(Binary Search)通常用于有序数组中查找特定元素,它采用分治策略,每次比较中间元素,然后根据目标值与中间值的关系决定是在左半部分还是右半部分继续查找。递归版本的二分查找算法可以按照以下步骤实现:
```java
public class BinarySearch {
public static int recursiveBinarySearch(int[] arr, int target, int left, int right) {
// 基本情况:数组为空或只有一个元素
if (left > right) {
return -1; // 没有找到目标,返回-1
}
// 计算中间索引
int mid = left + (right - left) / 2;
// 比较目标值与中间元素
if (arr[mid] == target) {
return mid; // 找到了,返回索引
} else if (arr[mid] < target) {
// 目标在右侧,递归搜索右半部分
return recursiveBinarySearch(arr, target, mid + 1, right);
} else {
// 目标在左侧,递归搜索左半部分
return recursiveBinarySearch(arr, target, left, mid - 1);
}
}
}
```
阅读全文