请使用JAVA编程实现二分搜索(折半查找)问题,最好用非递归和递归算法分别实现。
时间: 2023-05-11 15:04:34 浏览: 131
好的,以下是JAVA编程实现二分搜索的代码:
非递归算法:
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;
}
递归算法:
public static int binarySearch(int[] arr, int target, int left, int right) {
if (left > right) {
return -1;
}
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
return binarySearch(arr, target, mid + 1, right);
} else {
return binarySearch(arr, target, left, mid - 1);
}
}
请注意,以上代码仅供参考,可能存在错误或不足之处。
阅读全文