JAVA家庭作业
有人可以给我一些关于我在这里做错了什么的指示吗?感谢。
16.为练习11(f)编写一个递归解决方案,二进制搜索数组以找到一个Key的值。
public class BinarySearch {
public static void main(String[] args) {
public static int BinarySearch(int[] sorted, int first, int upto, int key) {
if (first < upto) {
int mid = first + (upto - first) / 2; // Compute mid point.
if (key < sorted[mid]) {
return BinarySearch(sorted, first, mid, key);
} else if (key > sorted[mid]) {
return BinarySearch(sorted, mid+1, upto , key);
} else {
return mid; // Found it.
}
}
return -(first + 1); // Failed to find key
}
}
}
答案 0 :(得分:2)
问题是你在另一个方法中定义了一个方法:
public static void main(String[] args) {
public static int BinarySearch(int[] sorted, int first, int upto, int key) {
只需将BinarySearch
方法移到main
方法之外:
public static void main(String[] args) {
//content of this method
}
public static int BinarySearch(int[] sorted, int first, int upto, int key) {
//content of this other method
}