Java 二进制搜索输出问题?
这是我第一次使用二进制搜索,因此我遇到了一个小问题(希望如此!)首先,程序允许用户键入一个随机数,如果该数字与任何书籍匹配,它将输出标题Java 二进制搜索输出问题?,java,search,binary,Java,Search,Binary,这是我第一次使用二进制搜索,因此我遇到了一个小问题(希望如此!)首先,程序允许用户键入一个随机数,如果该数字与任何书籍匹配,它将输出标题 class b { String book1, book2; b () { book1 = "Wicked Awesome Title"; book2 = "How to Read a Book"; public static Book getBook(Book [] A, int left
class b {
String book1, book2;
b () {
book1 = "Wicked Awesome Title";
book2 = "How to Read a Book";
public static Book getBook(Book [] A, int left, int right, String bookTitle) {
int middle;
Book found = null;
/**Your average Joe binary search...*/
while (found == null && left <= right) {
//If middle item == 0, returns true
middle = (left + right)/2;
int compare = A[middle].sameTitle(bookTitle);
if (compare == 0) {
found = A[middle];
} else {
if (compare >0) {
right = middle -1;
} else {
left = middle + 1;
}
}
}
return found;
}
那么,我错过了什么才能让这一切顺利呢?有什么想法吗?您的
getBook
函数声明为:
public static Book getBook(Book [] A, int left, int right, String bookTitle) {
当您尝试仅使用两个字符串参数调用它时:
Book b = getBook(book1, book2);
若要调用函数,则必须使用预期参数调用它
另外,不确定是否相关,但构造函数末尾缺少}
顺便说一句,添加您得到的错误将帮助我们帮助您
Book b = getBook(book1, book2);