用Java写一段二分查找
时间: 2024-03-13 11:22:26 浏览: 21
以下是用Java写的二分查找算法:
```java
public static int binarySearch(int[] arr, int target) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1; // 如果没有找到目标元素,则返回-1
}
```
在上述代码中,我们首先定义了两个指针left和right,它们分别指向数组的首尾元素。然后我们在while循环中不断缩小搜索范围,直到left和right相遇或者找到目标元素为止。
在每一轮循环中,我们先计算出中间元素的下标mid,然后与目标元素进行比较。如果mid对应的元素等于目标元素,则直接返回mid。如果mid对应的元素小于目标元素,则说明目标元素只可能在mid的右侧,因此我们将left指针移动到mid的右侧。如果mid对应的元素大于目标元素,则说明目标元素只可能在mid的左侧,因此我们将right指针移动到mid的左侧。
如果while循环结束时仍然没有找到目标元素,则说明该元素不存在于数组中,此时我们返回-1。