前提: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("很遗憾没有找到!");
}
}}



京公网安备 11010502036488号