首页 > 其他分享 >二分查找法

二分查找法

时间:2022-08-24 20:00:09浏览次数:46  
标签:二分 min int max mid number 查找

使用二分查找的条件:

  • 有序数组

  • 需求

    在数组{1,2,3,4,5,6,7,8,9,10}中,查找某个元素的位置

  • 实现步骤

    1. 定义两个变量,表示要查找的范围。默认min = 0 ,max = 最大索引

    2. 循环查找,但是min <= max

    3. 计算出mid的值

    4. 判断mid位置的元素是否为要查找的元素,如果是直接返回对应索引

    5. 如果要查找的值在mid的左半边,那么min值不变,max = mid -1.继续下次循环查找

    6. 如果要查找的值在mid的右半边,那么max值不变,min = mid + 1.继续下次循环查找

    7. 当min > max 时,表示要查找的元素在数组中不存在,返回-1.

public class MyBinarySearchDemo {
   public static void main(String[] args) {
       //定义数组
       int[] arr = {1,2,3,4,5,6,7,8,9,10};
       int max = arr.length-1;
       int min = 0;
       //设定一个查找得值number
       int number = 5;
        //循环判断:循环的条件是:min>max
           while(min<=max){
               //定义中间值mid
               int mid = (min+max)>>1
               if(number>arr[mid]){
                   min = mid+1;
              }else if(number<arr[mid]){
                   max = mid-1;
              }else{
                   System.out.print(mid);
                   break;
              }
          }
       if(min>maax){
           System.out.println("-1");
      }
  }

 

标签:二分,min,int,max,mid,number,查找
From: https://www.cnblogs.com/shiguangzheng/p/16621384.html

相关文章