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