二分法不知道哪里出错

img
有大手子指出一下哪里出错了吗,琢磨了半天没搞明白。。

// 二分法查找
static int binarySearch(int a,int[] arr){
    // 最大索引
    int maxIndex = arr.length -1;
    // 最小索引
    int minIndex = 0;
    // 中间索引
    int halfIndex = minIndex+(maxIndex-minIndex)/2;

    while (minIndex<=maxIndex){
        // 找到时 
        if (arr[halfIndex]==a){
            return halfIndex;
        }else if (arr[halfIndex]<a){// 比a小时
            minIndex = halfIndex + 1;
        }else {// 比a大时
            maxIndex = halfIndex - 1;
        }
        halfIndex = minIndex+(maxIndex-minIndex)/2;
    }
    return -1;
}

把
centerindex = centerindex+1;
改为
minindex = minindex +1;

cneterindex = centerindex-1;
改为
maxindex = maxindex-1;

27、30行错误,应该是最小值,最大值