gpt4 book ai didi

java - 使用递归的二分搜索

转载 作者:行者123 更新时间:2023-12-02 10:42:27 25 4
gpt4 key购买 nike

我正在尝试使用Java中的递归创建一个二分搜索算法,在调试时一切似乎都很好,直到它找到值并且应该返回所需键的索引。但是,由于某种原因,它会跳过 return 语句并转到底部 return 语句。

public int binSearch(int key, int L, int R) {

int mid =(R + L)/2;

if (R < L) {
return -1;
}

if (A[mid] == key) {
return mid;
}

if (key > A[mid]) {
binSearch(key, mid + 1, R);
}

if (key < A[mid]) {
binSearch(key, L, mid - 1);
}
return -1;
}

最佳答案

我能够从old post中挽救这个。我知道它不能解决您的问题,但它向您展示了解决此问题的另一种方法。

public static int binarySearch(int[] a, int target) {
return binarySearch(a, 0, a.length-1, target);
}

public static int binarySearch(int[] a, int start, int end, int target) {
int middle = (start + end) / 2;
if(end < start) {
return -1;
}

if(target==a[middle]) {
return middle;
} else if(target<a[middle]) {
return binarySearch(a, start, middle - 1, target);
} else {
return binarySearch(a, middle + 1, end, target);
}
}

关于java - 使用递归的二分搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52839109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com