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; // 防止溢出,等同于 (left + right) / 2
// 检查中间位置是否是目标值
if (array[mid] == target) {
return mid; // 找到目标值,返回索引
}
// 如果目标值大于中间值,则在右半部分继续查找
if (array[mid] < target) {
left = mid + 1;
} else {
// 如果目标值小于中间值,则在左半部分继续查找
right = mid - 1;
}
}
// 如果没有找到目标值,返回 -1
return -1;
}
public static void main(String[] args) {
int[] sortedArray = {1, 3, 5, 7, 9, 11, 13, 15};
int target = 7;
int result = binarySearch(sortedArray, target);
if (result != -1) {
System.out.println("元素 " + target + " 在数组中的索引为: " + result);
} else {
System.out.println("元素 " + target + " 不在数组中");
}
}
}
binarySearch
方法:实现了二分查找算法。它接受一个已排序的整数数组 array
和一个目标值 target
,并返回目标值在数组中的索引。如果目标值不在数组中,则返回 -1
。while (left <= right)
循环:确保搜索范围有效,即左边界不超过右边界。mid
计算:使用 left + (right - left) / 2
来计算中间位置,避免了 (left + right) / 2
可能导致的整数溢出问题。left
或 right
边界,逐步缩小搜索范围。main
方法:提供了一个简单的测试用例,演示如何使用 binarySearch
方法查找目标值,并输出结果。上一篇:java 生成二维码图片
下一篇:java mqtt协议
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站