在n个元素的数组中,检索元素x。

线性检索算法

public class Solution{
     public static void main(String[] args){
            int[] array={1,2,3,4};
            int index=linearSearch(array,4);
            System.out.println(index);
     }

     public static int linearSearch(int[] array,int x){
             if(array==null||array.length==0){
                 return -1;
             }
             int i=0;
             while(i<array.length&&array[i]!=x){
                   i++;
             }
             return i<array.length?i:-1;
     }
}

二分查找算法

public class Solution{
     public static void main(String[] args){
            int[] array={1,2,3,4};
            int index=binarySearch(array,4);
            System.out.println(index);
     }

     public static int binarySearch(int[] array,int x){
            if(array==null||array.length==0){
                 return -1;
            }
            int low=0;
            int high=array.length-1;
            int mid=0;
            while(low<=high){
                 mid=(low+high)/2;
                 if(array[mid]==x){
                     return mid;
                 } else if(array[mid]>x){
                     high=mid-1;
                 }else{
                     low=mid+1;
                 }
            }
            return -1;
     }
}

 

 posted on 2019-04-05 16:08  会飞的金鱼  阅读(142)  评论(0)    收藏  举报