算法:二分法查找(折半查找法)

算法:二分法查找(折半查找法)

//二分查找法(折半查找法)
    public static int halfSearch(int[] arr,int number){
        int min =0;  //最小下标
        int max =arr.length-1;   //最大下标
        int mid = 0;  //中间下标
        while (min<=max){
            //没找到,更新范围继续找
            mid = (min+max)/2;
            if (arr[mid]>number){   //number在mid的左边
                max = mid-1;  //改变最大下标
            }else if(arr[mid]

这是最经典的折半查找,而在面试的时候往往会对某些经典的数据结构和算法进行魔改,这道题总是被改成以下的问题:
1.使用二分法对一个数组中的数据进行查找,返回目标数值所在的下标:包含与目标值重复的所有左边的值
2.使用二分法对一个数组中的数据进行查找,返回目标数值所在的下标:包含与目标值重复的所有右边的值
3.使用二分法对一个数组中的数据进行查找,返回所有目标数值所在的下标

这些雷你踩过了么?
PS:今天刚踩到了3号复合雷,前来报到!

你可能感兴趣的:(算法:二分法查找(折半查找法))