java基础 二分查找算法

邮差的信 提交于 2019-12-30 03:44:30

 /*
   * 折半查找法:
   * 思路:
   * 定义三个变量记录查找范围中最大、最小和中间的索引值,每次都是使用中间索引值与要查找的目标进行对比,如果不符合,那么就不停缩小查找范围
   * */
  //前提:查找的序列必须是有序的
  int[] arr1 = {3,5,7,10,22,45,191};
  //定义三个变量记录查找的边界和中间位置,并且初始化
  int min = 0;
  int max = arr1.length;
  int mid = (min + max)/2;
  //定义一个变量,记录要查找的元素值;
  int target = 56;
  
  while(true){
   if(target>arr1[mid]){
    min = mid+1;
   }else if(target<arr1[mid]){
    max = mid-1;
   }else if(target==arr1[mid]){
    System.out.println("找到了" + target + "的位置是:" + mid);
    break;
   }
   mid = (max+min)/2;
   if(max<min){
    System.out.println("没找到,查找的元素不存在");
    break;
   }
  }
  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!