java写一个二分查找法
时间: 2023-07-18 12:05:25 浏览: 50
下面是 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) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
```
上述代码中,`arr` 是待查找的数组,`target` 是目标元素。该方法返回目标元素在数组中的下标,如果不存在则返回 `-1`。具体实现是通过维护一个左右边界的方式,不断缩小查找范围,最终找到目标元素或者判定不存在。
相关问题
用java写一个二分查找法
二分查找法是一种高效的查找算法,它可以在有序数组中快速查找目标元素。以下是一个用 Java 实现的二分查找法:
```java
public class BinarySearch {
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;
}
public static void main(String[] args) {
int[] arr = {1, 3, 5, 7, 9};
int target = 5;
int index = binarySearch(arr, target);
System.out.println("Index of " + target + " is " + index);
}
}
```
上述代码中,`binarySearch` 方法接收一个有序数组 `arr` 和一个目标元素 `target`,并返回目标元素在数组中的下标(如果存在),否则返回 -1。
该方法使用了循环语句,每次比较中间元素与目标元素的大小,如果相等则返回下标,否则根据中间元素与目标元素的大小关系,缩小查找范围。最终如果未找到目标元素,则返回 -1。
在 `main` 方法中,我们定义了一个有序数组 `arr` 和一个目标元素 `target`,并使用 `binarySearch` 方法查找目标元素的下标,并输出结果。
用Java写一个二分查找法
好的,下面是用 Java 实现二分查找法的代码。
首先,我们需要确定数据是有序的。如果数据是无序的,那么在执行二分查找之前需要先将数据排序。
然后,我们可以使用以下代码来实现二分查找:
```
public static int binarySearch(int[] array, int target) {
int low = 0;
int high = array.length - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (array[mid] == target) {
return mid;
} else if (array[mid] < target) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
```
在上面的代码中,我们定义了一个名为 `binarySearch` 的函数,它接受两个参数:一个整型数组 `array` 和一个整型目标值 `target`。该函数使用二分查找算法在数组中查找目标值,如果找到目标值,则返回目标值在数组中的位置(数组下标);如果没有找到,则返回 -1。
在函数中,我们使用变量 `low` 和 `high` 表示当前查找区间的最小下标和最大下标。我们每次取出数组的中间值,并根据中间值与目标值的大小关系来决定是缩小查找区间还是扩大查找区间。如果目标值比中间值小,则说明目标值在数组的