Показывает результат, когда в массиве присутствует значение поиска (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 присутствует в массиве, он покажет, какая позицияон находится в «Найденном числе» + обр.Но если его там нет, он должен вывести «Number not found», однако этого не происходит, и он продолжает запрашивать ввод.