二分查找算法

一,应用场景:有一个有序数组,想从里边找到某一个元素的位置

二,有序且元素唯一的实现

1.基础版
    public static int binary1(int[] a, int target) {
        int i = 0;
        int j = a.length - 1;
        while (i <= j) {
            int m = (i + j) >>> 1;
            if (target < a[m]) {
                j = m - 1;
            } else if (a[m] < target) {
                i = m + 1;
            } else {
                return m;
            }

        }
        return -1;
    }
2.平衡版
    public static int binary2(int[] a, int target) {
        int i = 0;
        int j = a.length ;
        while (1>> 1;
            if (target < a[m]) {
                j = m;
            }else {
                i= m;
            }

        }
        if (a[i]==target){
      

你可能感兴趣的:(数据结构与算法,算法,java,开发语言)