我试图运行此代码以使用二进制搜索来搜索名称,但它不起作用。 这段代码或方法有什么问题?使用BinarySearch进行搜索
public static int BinarySearchForStudentsName(String StudentName[],String Name) {
int left = 0;
int right = count - 1;
int middle;
while (true) {
middle = (left + right)/2;
int copmarison = Name.compareTo(StudentName[middle]);
if (Name.equals(StudentName[middle])) {
return middle;
} else if (left > right) {
return count;
} else {
if (copmarison > 0) {
middle = middle + 1;
} else {
middle = middle - 1;
}
}
}
}
public static void main(String[] args) {
String a[]={"A","B","C","D"};
int index = BinarySearchForStudentsName(a,"M");
if (index == count) {
System.out.println("not found");
} else {
System.out.println("founded at " + index);
}
}}
1.数组中没有名为“Me”的值。 2.数组需要在搜索之前进行排序。 –
对不起,我忘了排序数组,但同样的东西仍然无法正常工作.... 和值“ME”我想品尝它,如果它将返回找不到或不...为什么搜索? – user3648168
'String StudentName []'不能正确。你的变量'copmarison'拼错了。你的变量'count'是未定义的。解决这个问题。 – user1803551