Java 如何创建二进制搜索以从头开始使用ArrayList?
所以我需要从一开始就自己编写一个代码,不使用集合或任何快捷方式,问题是,我得到了一个用于二进制搜索的代码,但它是用于数组的。。我能知道是否有办法重新创建或更改某些内容以使其与ArrayList一起工作吗?谢谢Java 如何创建二进制搜索以从头开始使用ArrayList?,java,search,arraylist,binary,Java,Search,Arraylist,Binary,所以我需要从一开始就自己编写一个代码,不使用集合或任何快捷方式,问题是,我得到了一个用于二进制搜索的代码,但它是用于数组的。。我能知道是否有办法重新创建或更改某些内容以使其与ArrayList一起工作吗?谢谢 public class binarySearch { public static void main(String args[]){ int target = 42; int arr[] ={10,14,19,
public class binarySearch {
public static void main(String args[]){
int target = 42;
int arr[] ={10,14,19,26,27,31,33,35,42,44};
int left = 0;
int right = arr.length -1;
int mid = 0;
while(left<right){
mid = (left + right)/2;
if(arr[mid] == target){
System.out.println("Location for "+target+" is "+mid);
System.exit(0);
}
else if(target<arr[mid]){
right = mid -1 ;
}
else{
left = mid + 1;
}
}
}
}
公共类二进制搜索{
公共静态void main(字符串参数[]){
int目标=42;
int arr[]={10,14,19,26,27,31,33,35,42,44};
int左=0;
int right=arr.length-1;
int-mid=0;
而(左这里是数组操作的列表操作的等价物:
arr.length => list.size()
arr[i] => list.get(i)
只要替换代码片段就可以了。应该是一个直截了当的翻译。你在哪里遇到麻烦了?“我得到了这一个代码”,所以你甚至没有自己编写那一个代码?我真的是个初学者。我是sorryAn ArrayList,它是java集合框架的一部分。我刚开始搞不清楚if(arr[mid]==target)…我该如何将该等式更改为arrayList?list.get(mid)
假设您的列表变量被调用list
,因为每当我键入if(list.get(mid)==target)时,它都会给我错误..可能您的列表没有声明的类型。您应该使用list
或arrayList