0
点赞
收藏
分享

微信扫一扫

二分查找(数组)

at小涛 2022-01-20 阅读 50

二分查找

public class MyBinarySearchDemo {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6,7,8,9,10};
        int num = 3;
        int index = binarySearchForIndex(arr,num);
    }

    private static int binarySearchForIndex(int[] arr, int num) {
        //1.定义查找范围
        int min = 0;
        int max = arr.length-1;
        //2.循环查找  min<=max;
        while (min<=max){
            //3.计算中间位置 mid
            int mid =(min + max) >> 2;

            if (arr[mid]>num){//mid指向的元素 > num,表示要查找的元素在左边
                max = mid -1;
            }else if (arr[mid]<num){//mid指向的元素 < num,表示要查找的元素在右边
                min = mid +1;
            }else{
                return mid;//mid指向的元素 == num
            }


        }
        return -1;//如果min大于max就表示元素不存在。
    }
}
举报

相关推荐

0 条评论