初学者二进制搜索中的java错误
当数组中存在搜索值(SV)时,它显示输出。但如果它不在那里就不会。它不断请求输入并不断循环
这是我第一次尝试为二进制搜索编写代码
import java.util.Scanner;
public class Binary_search {
public static void main() {
Scanner input = new Scanner(System.in);
int start = 0;
int end = arr.length;
//I used flag to end the loop
int Flag = 0;
int mid = 0;
int SV = input.nextInt();
//here I enter values in the array
for (int x = 0; x <= 4; x++) {
arr[x] = input.nextInt();
}
//here I start a loop for the search
while (Flag == 0) {
mid = (start + end) / 2;
if (mid == SV) {
System.out.println("Number Found" + arr[mid]);
Flag = Flag + 1;
} else if (mid > SV) {
end = mid - 1;
} else if (mid < SV) {
start = mid + 1;
}
//this was the second possibility if the number was not present
else if (start == end) {
Flag = Flag + 1;
System.out.println("Number not found");
}
}
}
}
如果SV存在于阵列中,它将显示其所处的位置,“找到的编号”+arr[mid]。但如果它不在那里,它应该输出“找不到数字”,然而,这不会发生,它会不断请求输入
# 1 楼答案
您可以创建这样一个类来输入用户输入的数字,并将其存储在数组中,然后使用二进制搜索在数组中搜索另一个输入的数字,并显示其位置
# 2 楼答案
您可以这样简单地创建。 请比较并检查需要更正的地方