二分查找的java代码实现
时间: 2023-10-14 09:27:06 浏览: 46
当然,我可以为您提供二分查找算法的Java代码实现,这是常见的二分查找实现:
```
public 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;
}
```
以上代码采用了迭代的方式实现二分查找,先将数组的中间位置定位,再根据中间位置的值与目标值的大小关系来确定下一步的查找范围。如果中间值等于目标值,那么就返回它的位置索引,否则缩小查找范围。如果最后没找到,返回 -1。
希望我的回答对您有帮助!
相关问题
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;
}
}
```
在上面的代码中,数组`arr`是要查找的有序数组,`target`是要查找的目标值。函数`binarySearch`返回目标值在数组中的位置,如果目标值不存在,则返回-1。
使用二分查找法的前提是数组必须是有序的。在Java中,可以使用`Arrays.sort`方法对数组进行排序。
例如,要查找数组`arr`中是否存在值为5的元素,可以使用如下代码:
```
int[] arr = {1, 3, 5, 7, 9};
int target = 5;
二分查找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。
这个方法使用了一个while循环来不断缩小查询范围,直到找到目标值或者确定目标值不在数组中。在每次循环中,它计算出中间索引mid,然后比较arr[mid]和目标值的大小关系,根据比较结果更新left和right的值,最终找到目标值或者返回-1。