写一段二分查找的java代码
时间: 2023-10-14 13:26:25 浏览: 66
当然,我很乐意帮你写一段二分查找的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。
相关问题
用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) / 2;
if (array[mid] == target) {
return mid;
} else if (array[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -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) / 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。
阅读全文