【问题标题】:How can I create Binary Search to work with ArrayList from scratch? [closed]如何从头开始创建二进制搜索以使用 ArrayList? [关闭]
【发布时间】:2021-03-02 00:36:36
【问题描述】:

所以我需要自己从头开始编写代码,而不使用 Collection 或任何快捷方式,问题是,我得到了这个用于二进制搜索的代码,但它用于 Array.. 我能知道是否有办法重新创建或更改某些内容以使其与 ArrayList 一起使用?谢谢


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;
            }   
        }
    }
}

【问题讨论】:

  • 应该是直截了当的翻译。你在哪里遇到麻烦了?
  • “我得到了这个代码”,所以你连那个代码都没有自己写?
  • 我真的是这方面的初学者.. 对不起
  • ArrayList 是 java 集合框架的一部分。

标签: java search arraylist binary


【解决方案1】:

以下是数组操作的列表操作等价物:

arr.length => list.size()
arr[i] => list.get(i)

只需替换代码片段,它应该可以工作。

【讨论】:

  • 我刚开始混淆 if(arr[mid]==target)..我想如何将该等式更改为 arrayList?
  • list.get(mid) 假设您列出的变量名为 list
  • 因为每当我输入 if(list.get(mid) == target) 时,它都会给我错误..
  • 可能您的 List 没有声明类型。你应该使用List&lt;Integer&gt;ArrayList&lt;Integer&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
  • 2016-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-07
  • 1970-01-01
相关资源
最近更新 更多