Прежде всего, мне нужно рассчитать, когда поиск числа больше, чем число «приземлилось». (меньше, и я могу просто использовать/2, но я не знаю, что делать, когда это наоборот, поскольку я использую int, а не double.)Как отлаживать проблемы с моей функцией двоичного поиска в Java?
Во-вторых, я получаю ошибку за пределы, Знать причину.
import java.util.ArrayList;
import java.util.Arrays;
import javax.swing.JOptionPane;
public class BinärSökning {
public static void main(String[] args){
ArrayList<Integer> listA = new ArrayList<Integer>();
Integer[] otherList = new Integer[] {1,2,3,4,5,6,7,8,9,10};
listA.addAll(Arrays.asList(otherList));
String lts = JOptionPane.showInputDialog("Which number between 1 and 10 are you looking for? ");
int lt = Integer.parseInt(lts);
int s = listA.size()/2;
while(true){
if(lt==listA.get(s)){
System.out.println("Number found in position " + s);
}if(lt<listA.get(s)){
s = ???;
}else{
s = s/2;
}
}
}
}