java 二分查找法

2018-01-05  本文已影响0人  发光驴子
//java二分查找法,返回索引,数字必须是有序排列
public static int binarySearch(int[] arr,int key){
    //三个指针变量
    int min=0;
    int max=arr.length-1;
    int mid=0;//中间指针先初始化为0
    //循环折半
    while (min<=max) {
        //公式,计算中间索引
        mid=(min+max)/2;
        if(key>arr[mid]){
            min=mid+1;
        }else if(key<arr[mid]){
            max=mid-1;
        }else{
            //找到元素,返回索引
            return mid;
        }
    }
    
    return -1;
}

二分查找法,大白话,就是把一个数组 从中间分成前半部和后半部,如果要查找的key大于中间的值,那么直接查找后半部,以此类推,如果要查找的key小于中间的值,那么直接查找前半部,以此类推,直到找到为止,找不到返回-1,找到返回索引下标,需要注意的是,二分查找法,必须是一个有序的数组,否则会返回-1,
比较过程是根据索引下标进行的,数组长度不可变。


图片.png
上一篇下一篇

猜你喜欢

热点阅读