二分查找

来源:互联网 发布:图片添加文字软件 编辑:程序博客网 时间:2024/04/27 19:22

 

v二叉查找又叫二分查找
v算法描述:
找到数组中位于中间位置的元素,并将其与查找值相比较,如果两者相等,就返回该元素的索引;否则,将问题简化为查找已排序数组的一半元素——如果查找值小于数组的中间元素,就查找数组的前半部分,否则就查找数组的后半部分(假设数组是按升序排列)
v
int []array={1,3,5,9,11,12,15,16,18,29};
  
  int middle;
  boolean flag=false;
  boolean again=false;
  Scanner input=new Scanner (System.in);
  System.out.println("请输入您要查找的数字:");
  //int search=input.nextInt();
  do{
   int search=input.nextInt();
   int low=0;
   int high=array.length-1;
   do{
   middle=(low+high)/2;
   if(search==array[middle]){
    //System.out.println("查找成功该数的索引是:"+middle);
    flag=true;
    break;
   }
   else if(search<array[middle])
    high=middle-1;
   else
    low=middle+1;  
   }while(low<=high);
  if(flag){
   System.out.println("查找成功,该数的索引是:"+middle);
   again=false;
   break;
  }
  else{
   System.out.println("很遗憾,未找到您要查找的数!请重新输入:");
       again=true;
      
  }
  }while(again);
 }
二叉查找条件:
已排序数组
原创粉丝点击