欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二分法查找

程序员文章站 2022-04-30 22:48:50
...

用二分法查找数组中某一个元素的下标。ps:二分法查找只适用于有序数组

二分法原理图(来源网络):

二分法查找

int[] arr  = new int[]{1,2,3,4,5,6,7,8,9,10};

public int binarySearch(int value){
    int middle = 0;//中间索引值
    int low = 0;
    int high = arr.length - 1;
    while(low <= high){
        middle = (high+low)/2;
        if(arr[middle]==value){
            return middle;
        }
        if(arr[middle] > value){//中间值比较大,往左边找
            high  = middle - 1;
        }else{//往右边找
            low = middle + 1;
        }
    }
    return -1;
}

调用

binarySearch(8);

结果是7