Java函数:如何使用Java实现一个用于搜索的二分查找函数?
发布时间:2023-06-25 10:55:14
二分查找(binary search),又称折半查找,是一种在有序数组中查找目标元素的算法。它的基本思想是每次找中间的元素,将目标元素与中间元素进行比较,根据比较结果确定下一次在左半部分或右半部分查找,直到找到目标元素或者查找完整个数组。
下面是一个用Java实现的二分查找函数:
public static int binarySearch(int[] arr, int target) {
int low = 0;
int high = arr.length - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return -1;
}
该函数接收一个有序数组和一个目标元素作为参数,返回目标元素在数组中的下标。如果目标元素不存在于数组中,返回-1。
在函数中,使用low和high表示数组的左右端点,mid表示数组的中间位置。通过while循环不断二分查找,直到找到目标元素或者查找完整个数组。每次查找时,将目标元素与中间元素进行比较,根据比较结果确定下一次在左半部分或右半部分查找。如果查找到目标元素,返回它的下标,否则返回-1。
