![](https://csdnimg.cn/release/download_crawler_static/89386515/bg1.jpg)
在 Java 中,二分查找(Binary Search)是一种在排序数组中查找某一特定元素的搜索
算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过
程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那
一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表
找不到。
以下是一个简单的二分查找的 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; // 如果没有找到,返回-1
}
public static void main(String[] args) {
int[] array = {2, 3, 4, 10, 40};
Arrays.sort(array); // 注意二分查找要求数组是已排序的
int target = 10;
int index = binarySearch(array, target);
if (index != -1) {
System.out.println("元素 " + target + " 在数组中的索引为 " +
index);
} else {
System.out.println("元素 " + target + " 不在数组中");
}