写一段二分查找的java代码
时间: 2023-05-21 21:07:33 浏览: 80
以下是二分查找的 Java 代码:
```java
public static int binarySearch(int[] arr, int target) {
int low = 0, high = arr.length - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return -1;
}
```
以上代码时间复杂度为 O(log n),使用时将数组和目标值传入即可。
相关问题
用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。
阅读全文