编写一个Java函数,实现二分查找算法,在有序数组中查找指定元素,并返回其索 引。如果未找到,则返回-1
时间: 2024-09-27 21:11:10 浏览: 28
在Java中,你可以创建一个名为`binarySearch`的函数,使用二分查找算法来搜索有序数组。以下是函数的实现:
```java
public class BinarySearchExample {
public static int binarySearch(int[] array, int target) {
int left = 0; // 左边界
int right = array.length - 1; // 右边界
while (left <= right) {
int mid = left + (right - left) / 2; // 中间位置计算
// 如果目标值等于中间元素,直接返回索引
if (array[mid] == target) {
return mid;
}
// 如果目标值小于中间元素,更新右边界
if (array[mid] > target) {
right = mid - 1;
}
// 否则,更新左边界
else {
left = mid + 1;
}
}
// 如果没找到目标值,返回-1
return -1;
}
public static void main(String[] args) {
int[] sortedArray = {1, 3, 5, 7, 9};
int target = 5;
int result = binarySearch(sortedArray, target);
if (result != -1) {
System.out.println("Element found at index: " + result);
} else {
System.out.println("Element not found in the array.");
}
}
}
```
这个函数会不断将搜索范围缩小一半,直到找到目标元素或搜索范围为空。如果找不到目标元素,它会在循环结束后返回-1。
阅读全文