二分查找算法(折半查找):前提是在已经安排好序的数组中,通过将待查找的元素与中间索引值对应的元素进行比较,若大于中间索引值对应的元素,去右半部分查找,否则,去左半部分查找。以此类推,直到找到为止,找不到返回一个负数。

必须保证 数列是有序的

例:

public static void main(String[] args) {
        int[] num = {10,20,50,65,88,90};
        int index = binarySearch(num,10 );
        System.out.println(index);
        
    }
    //二分查找算法
    public static int binarySearch(int[] num,int key) {
        int start =0;//开始下标
        int end =num.length-1;//结束下标
        while(end>=start) {
            int middle =(start+end)/2;
            if(num[middle]<key) {
                start = middle+1;
            }else if(num[middle]>key) {
                end = middle-1;
            }else {
                return middle;
            }
        }
        return -1;
        
    }