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; // 如果没有找到目标值,返回-1
}
public static void main(String[] args) {
int[] arr = {1, 3, 5, 7, 9};
int target = 7;
int index = binarySearch(arr, target);
if (index != -1) {
System.out.println("找到目标值,索引为:" + index);
} else {
System.out.println("未找到目标值");
}
}
}
这段代码实现了二分查找算法,在一个有序数组中查找特定的元素,并返回其索引。如果找不到,则返回-1。这是一个常用的算法,对于学习数据结构和算法有重要的意义。