📅  最后修改于: 2023-12-03 15:39:48.363000             🧑  作者: Mango
在Java中,二进制搜索是一种高效的搜索算法,可用于查找按升序排序的数组中的元素。以下是一个示例程序,展示如何在Java中实现二进制搜索:
public class BinarySearch {
public static int binarysearch(int[] arr, int key) {
int low = 0;
int high = arr.length - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] < key) {
low = mid + 1;
} else if (arr[mid] > key) {
high = mid - 1;
} else {
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int key = 5;
int index = binarysearch(arr, key);
System.out.println("Index of " + key + " is " + index);
}
}
该算法使用“分而治之”策略。它将数组中间的元素与搜索键进行比较。如果中间元素小于搜索键,则在中间元素的右侧继续搜索,反之,则在中间元素的左侧继续搜索。如果中间元素等于搜索键,则返回中间元素的索引。如果搜索键未在数组中找到,则返回-1。
在Java中实现二进制搜索是一种高效的搜索数组的方法。它可以快速找到数组中一个特定的元素,而不必遍历整个数组。BinarySearch类可以作为通用类的一部分,并在许多方面使用。