java实现二分查找法
时间: 2023-11-18 19:25:10 浏览: 86
二分查找也称折半查找,是一种在有序数组中查找特定元素的搜索算法。
二分查找的基本思想是:将数组取中间位置的值与要查找的值进行比较,如果中间位置的值大于要查找的值,则在数组的左半部分继续查找;如果中间位置的值小于要查找的值,则在数组的右半部分继续查找;如果中间位置的值等于要查找的值,则直接返回该位置。
下面是用Java实现二分查找法的代码:
public static int binarySearch(int[] arr, int target) {
int left = 0, right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1; //未找到
}
其中,arr为要查找的有序数组,target为要查找的目标值。
初始化左右边界为数组的首尾两个位置。在while循环中,用mid取到数组的中间位置,并将target与arr[mid]进行比较。如果相等,则直接返回mid;如果target小于arr[mid],则在数组左半部分继续查找;如果target大于arr[mid],则在数组右半部分继续查找。如果整个while循环执行完毕还没有找到目标值,则返回-1。
阅读全文