前提:1.顺序存储结构 2.关键字大小有序排列
定义头部和尾部指示器,首先将数组中间位置与所要查找关键字进行比较,如果二者相等,则查找成功。否则,就将数组通过中间位置分为前后两个子表。若所查找的关键字大于中间位置的元素,则查找后一子表,反之,则查找前一子表。
图片说明
源代码:
import java.util.Scanner;

public class BinSrch {
public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);    

    int insort = scan.nextInt();

    int[] arr = new int[]{-999,-881,-134,-132,0,123,234,546,777,999};

    int low = 0,high = arr.length - 1;

    boolean isflag = true;
  while(low <= high){
      int mid = (high + low) / 2;

      if(insort == arr[mid]){
          System.out.println("找到了,下标为:" + mid);       
          isflag = false;      
          break;
      }
      else if(arr[mid] > insort){
                  high = mid - 1;    
                  }else{
                  low = mid + 1;
                  }

  }
        if(isflag){
            System.out.println("很遗憾没有找到!");
        }
}

}