Я использую List для динамического хранения значений, но мне нужно указать размер List перед тем, как вводить данные в программе бинарного поиска. Мне нужна помощь в том, что я не хочу принимать размер в качестве ввода.
Я пытался использовать length
, но это не работает, кто-то предложил мне использовать size()
, но я нене знаю, как его использовать.
import java.util.*;
class Binary
{
public static void main(String args[])
{
Scanner s=new Scanner(System.in);
System.out.println("Enter size of array");
int n=s.nextInt();
System.out.println("Enter array elements in ascending order");
List<Integer> L=new ArrayList<>();
for(int i=0;i<n;i++)
{
int e=s.nextInt();
L.add(e);
}
System.out.println("Enter the element you want to search");
int h=s.nextInt();
int left=L.get(0);
int right=L.get(n-1);
while(left<=right)
{
if(h<=right){
int m=(left+right)/2;
if(m==h)
{
System.out.println("Element found at index:"+L.indexOf(m)+" starting from 0");
return;
}
if(m>h)
{
right=m-1;
}
if(m<h)
{
left=m+1;
}
}
else{
System.out.println("Element not present");
}
}
}
}
Теперь я ожидаю, что пользователь будет вводить элементы до тех пор, пока он не захочет, а затем найти индекс элемента с помощью бинарного поиска