帮我这一段二分查找算法的java代码
时间: 2023-03-15 08:07:48 浏览: 68
我可以提供一段示例代码作为参考:public int binarySearch(int[] arr, int x) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
// Check if x is present at mid
if (arr[mid] == x)
return mid;
// If x greater, ignore left half
if (arr[mid] < x)
left = mid + 1;
// If x is smaller, ignore right half
else
right = mid - 1;
}
// if we reach here, then element was
// not present
return -1;
}
相关问题
帮我写一段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;
}
}
```
算法的思路是:
- 首先,设置两个指针 `left` 和 `right`,分别指向数组的第一个元素和最后一个元素
- 然后,在 `left` 和 `right` 之间二分查找,设中间位置的索引为 `mid`
- 如果数组的第 `mid` 个元素等于目标元素,则返回 `mid`
- 如果数组的第 `mid` 个元素小于目标元素,则在数组的右半部分继续二分查找,设置 `left = mid + 1`
- 如果数组的第 `mid` 个元素大于目标元素,则在数组的左半部分继续二分查找,设置 `right = mid - 1`
- 如果在查找过程中 `left` 大于 `right`,则表示数组中没有目标元素,返回 `-1`
注意:这段代码假定了数组是有序的。
写一段二分查找的java代码
当然,我很乐意帮你写一段二分查找的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 - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```
这段代码实现了二分查找算法,接受一个已排序的整数数组和目标值作为输入,返回目标值在数组中的索引,如果目标值不存在于数组中,则返回-1。