algs4的二分搜索算法

来源:互联网 发布:如何查看网络ip地址 编辑:程序博客网 时间:2024/06/01 14:48

二分搜索算法前提是被查找数组为有序 (即a有序)


   public static int rank(int k,int[]a){

        if(null==a){
            System.out.println("字符串为空");
            return -1;
        }
        else{
            int left=0;
            int right=a.length-1;
            
            while(left<=right){                //需左小于等于右。如果只小于的条件下:当被查找数组只有一个值,且正好等于待查找的数,则结果和期望值不符合
                int mid=(left+right)/2;
                if( k<a[mid])
                    right=mid-1;
                else if (k>a[mid]) {
                    left=mid+1;
                }else {
                    return k;
                }
            }
            return -1;
        }

    }

    public static void main(String[] args) {
        int[]a={1,2,3,4,5};
//        int[]a=null;
        System.out.println(rank(1, a));
    }

原创粉丝点击