Java算法-二分查找

简介

二分查找又叫折半查找,要求待查找的序列有序。

原理

每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

代码

      * @Param int[] array,int a
      * @return int(如果找到返回数组对应下标,找不到返回-1)
      * @DateTime 2022/3/19 22:39
      * @Description: 二分查找算法
      * 又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置
      * 的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,
      * 则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。
      **/
    public  int binarySearch(int[] array,int a){
        int left=0;
        int right=array.length-1;
        int mid;
        while(left<=right){
            mid=(left+right)/2;//中间位置
            if(array[mid]==a){
                return mid;
            }else if(array[mid]<a){ //向右查找
                left=mid+1;
            }else{ //向左查找
                right=mid-1;
            }
        }
        return -1;//找不到
    }
阅读剩余
THE END