Java查找算法之折半查找
时间: 2023-07-10 10:11:39 浏览: 200
基于java的折半查找算法.zip
好的,折半查找(Binary Search)是一种常用的查找算法,也叫二分查找。其思想是:假设要查找的元素在有序数组中,先取中间位置的值与要查找的值进行比较,如果相等则直接返回中间位置的下标,如果要查找的值比中间位置的值小,则在左半部分继续查找,否则在右半部分继续查找,直到查找到要查找的值或者整个数组中已经没有可以查找的元素。
下面是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) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
}
```
其中,`arr`表示要查找的有序数组,`target`表示要查找的值。程序中使用了`left`、`right`和`mid`三个变量,`left`表示数组的左端点,`right`表示数组的右端点,`mid`表示数组中间位置的下标。程序通过不断缩小查找范围,最终找到要查找的值或者确定要查找的值在数组中不存在。
阅读全文