Java语言的二分法

private static int binarySearch(int[] a, int t) {

        int lo = 0;

        int hi = a.length-1;

       while(lo<=hi) {
        int minden = (lo+hi)/2;
        if(t<a[minden]) {
            hi=minden-1;
        }
        else if(t>a[minden]) {
            lo=minden+1;
        }else {
            return minden;
        }
        
    }
    
    return -1;
}

当两数交插时退出循环

每次if判断中都给lo或者hi重新赋值,然后while循环到minden重新算出中心值;

猜你喜欢

转载自blog.csdn.net/weixin_42345223/article/details/84893431