首页 > 技术文章 > Java ---- 二分查找

caiba 2019-04-21 22:39 原文

public class binSearch {

    public static void main(String[] args) {
        int ary[] = {1,5,3,54,32,643,34,2543};

        System.out.println(binSearch(ary,0,ary.length-1,643));

    }

    public static boolean binSearch(int[] ary,int start,int end,int key){

        int mid = (end - start)/2+start;//必须是 end-start不是end+start

        if (ary[mid] == key)
            return true;

        if (start>end){
            //必须有 否则会报错,因为递归中可能会出现start>end的情况
            return false;
        }

        if (key > ary[mid]){
            return binSearch(ary,mid+1,end,key);
        } else if(key<ary[mid]){
            return binSearch(ary,start,mid-1,key);
        }
        return true;

    }

}

 

推荐阅读