java 实现二分查找
时间: 2023-10-14 19:06:22 浏览: 138
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;
}
```
说明:
- `arr`:需要查找的有序数组
- `target`:需要查找的目标元素
- `left`:左指针,初始值为 0
- `right`:右指针,初始值为数组长度减 1
- `mid`:中间指针,每次取左右指针的平均值
- 如果中间元素等于目标元素,则返回中间元素的下标
- 如果中间元素小于目标元素,则将左指针移到中间元素的右边一位
- 如果中间元素大于目标元素,则将右指针移到中间元素的左边一位
- 如果左指针大于右指针,说明目标元素不存在于数组中,返回 -1。
阅读全文