我曾尝试对二进制搜索程序进行编码,但实际上并没有用。
如果我输入一个与数组中元素相对应的字符串,例如“ banna”,则输出“ 0”,应该输出“ 1”]
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] word = {"appele", "banna", "cdfds", "dasdf", "esadfsdf"};
String a = input.nextLine();
int low = 0, high = word.length - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (word[mid].compareTo(a) > 0) {
low = mid + 1;
high = mid - 1;
}
if (word[mid].compareTo(a) < 0) {
high = mid - 1;
} else if (word[mid].compareTo(a) == 0){
System.out.println("1");
}
}
System.out.println("0");
}
if (word[mid].compareTo(a) > 0) {
low = mid + 1;
high = mid - 1;
}
if (word[mid].compareTo(a) < 0) {
high = mid - 1;
}
每个块应更改为高电平或低电平,但不能两者都更改。而且我认为比较是错误的方法。
可能会有更多错误,请参阅注释以获取有关调试的提示。