帮我写一段java二分查找的算法
时间: 2023-02-20 10:58:18 浏览: 71
好的,这是一个二分查找的算法的 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;
}
}
```
算法的思路是:
- 首先,设置两个指针 `left` 和 `right`,分别指向数组的第一个元素和最后一个元素
- 然后,在 `left` 和 `right` 之间二分查找,设中间位置的索引为 `mid`
- 如果数组的第 `mid` 个元素等于目标元素,则返回 `mid`
- 如果数组的第 `mid` 个元素小于目标元素,则在数组的右半部分继续二分查找,设置 `left = mid + 1`
- 如果数组的第 `mid` 个元素大于目标元素,则在数组的左半部分继续二分查找,设置 `right = mid - 1`
- 如果在查找过程中 `left` 大于 `right`,则表示数组中没有目标元素,返回 `-1`
注意:这段代码假定了数组是有序的。
阅读全文