【发布时间】:2020-02-09 10:57:38
【问题描述】:
This is the code. Please tell me what I am doing wrong 所以这是一个使用递归方法进行二进制搜索的Java程序。它需要一个数组和一个搜索变量。
我知道有问题,但我不确定是什么问题。 我做错了什么以及如何改变它?
public static int binary(int arr[], int target) {
int start = 0;
int end = arr.length;
int mid = (start+end)/2;
if(end<start) {
return -1;
}
if (arr[mid] == target) {
return mid;
}
else if (arr[mid] > target) {
start = mid + 1;
int[] newArr = new int[end];
for(int i=start;i<end;i++) {
int j=0;
newArr[0] = arr[i];
j++;
}
return binary(newArr,target);
} else {
end = mid - 1;
int[] newArr = new int[end];
for(int i=start;i<end;i++) {
newArr[i] = arr[i];
}
return binary(newArr,target);
}
}
【问题讨论】:
-
如果您在问题中发布minimal reproducible example,而不是某些代码的图片,您更有可能获得帮助;并详细描述您遇到的问题。
-
请仅将您的问题放在标题中,然后提供详细信息。在此处分享代码将帮助想要回答您问题的人。
-
请将您的代码发布为文本而不是图像!
-
代码已贴出!
标签: java arrays if-statement recursion binary-search-tree