用java编写:二分查找
时间: 2024-05-25 21:07:15 浏览: 55
以下是用Java编写的二分查找的示例代码:
```java
public class BinarySearch {
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;
} else if (array[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] array = {1, 5, 8, 11, 19, 22, 31, 35, 40, 45, 48, 49, 50};
int target = 47;
int idx = binarySearch(array, target);
System.out.println(idx); // 输出:-1
}
}
```
这段代码实现了二分查找算法。它接受一个有序数组和目标值作为输入,并返回目标值在数组中的索引。如果目标值不存在于数组中,则返回-1。
在二分查找算法中,我们首先将数组的左边界和右边界初始化为数组的第一个和最后一个元素的索引。然后,我们计算中间元素的索引,并将其与目标值进行比较。如果中间元素等于目标值,则返回中间元素的索引。如果中间元素小于目标值,则将左边界更新为中间元素的索引加1。如果中间元素大于目标值,则将右边界更新为中间元素的索引减1。通过不断缩小搜索范围,最终可以找到目标值或确定目标值不存在于数组中。
在上面的示例代码中,我们使用了一个while循环来执行二分查找算法。循环条件是左边界小于等于右边界。在每次循环中,我们计算中间元素的索引,并根据中间元素与目标值的比较结果更新左边界或右边界。如果循环结束时仍然没有找到目标值,则返回-1。
阅读全文