编写一个 Java 函数,实现二分查找算法,在有序数组中查找指定元素,并返回其索引。如果未找到,则返回-1
时间: 2024-09-26 16:18:08 浏览: 40
Java二分法查找数组元素.zip
在 Java 中,可以编写一个名为 `binarySearch` 的函数来实现二分查找算法,如下所示:
```java
public class BinarySearch {
public static int 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 mid; // 返回目标值的索引
} else if (arr[mid] < target) { // 如果中间元素小于目标值
left = mid + 1; // 更新左边界到右半部分
} else { // 如果中间元素大于目标值
right = mid - 1; // 更新右边界到左半部分
}
}
// 如果遍历完整个数组都没有找到目标值,返回 -1
return -1;
}
}
```
这个函数接受一个已排序的整数数组 `arr` 和一个目标值 `target`,通过不断将搜索范围减半,直到找到目标值或者搜索范围为空(即 `left > right`),来实现二分查找。
阅读全文