二分法查找

来源:互联网 发布:红米2移动版网络解锁 编辑:程序博客网 时间:2024/06/07 02:16

用二分法查找数组中某一个元素的下标。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