java编写二分查找算法
时间: 2023-02-05 19:29:38 浏览: 63
好的,下面是用 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` 移动到中间元素的左边一位。这样,每次我们就能缩小查找的范围,直到找到目标元素或者确定目标元素不存在为止。
希望这个示例代码能帮到你!
相关问题
用java编写:二分查找
以下是用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;
}
public static void main(String[] args) {
int[] array = {1, 5, 8, 11, 19, 22, 31, 35, 40, 45, 48, 49, 50};
int target = 47;
int idx = binarySearch(array, target);
System.out.println(idx); // 输出:-1
}
}
```
这段代码实现了二分查找算法。它接受一个有序数组和目标值作为输入,并返回目标值在数组中的索引。如果目标值不存在于数组中,则返回-1。
在二分查找算法中,我们首先将数组的左边界和右边界初始化为数组的第一个和最后一个元素的索引。然后,我们计算中间元素的索引,并将其与目标值进行比较。如果中间元素等于目标值,则返回中间元素的索引。如果中间元素小于目标值,则将左边界更新为中间元素的索引加1。如果中间元素大于目标值,则将右边界更新为中间元素的索引减1。通过不断缩小搜索范围,最终可以找到目标值或确定目标值不存在于数组中。
在上面的示例代码中,我们使用了一个while循环来执行二分查找算法。循环条件是左边界小于等于右边界。在每次循环中,我们计算中间元素的索引,并根据中间元素与目标值的比较结果更新左边界或右边界。如果循环结束时仍然没有找到目标值,则返回-1。
用Java编写一个二分查找算法
我可以为你提供一个参考示例:public static int binarySearch(int[] arr, int x) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] < x)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)