java 二分查找
时间: 2023-07-18 21:06:05 浏览: 54
二分查找,也称折半查找,是一种常见的查找算法。它需要在有序的数组中查找一个特定的元素,通过将数组分成两部分,确定要查找的元素在哪一部分中,从而将查找的范围逐步缩小。下面是 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` 循环中,每次取当前查找范围的中间位置 `mid`,如果中间位置的值等于目标元素,则直接返回中间位置的索引;如果中间位置的值小于目标元素,则将查找范围缩小到右半部分;反之则缩小到左半部分。如果最终没有找到目标元素,则返回 -1。
注意,在使用二分查找算法时,需要保证数组是有序的,否则可能会出现不可预测的结果。