二分查找
public class BinarySearch { public static int rank(int key,int[] a){ int lo =0; int hi=a.length-1; while (lo<=hi){ //被寻找的键要么不存在,要么必然存在于a【ho--hi】值中 int mid= lo+(hi-lo)/2; if (key<a[mid]) hi=mid-1; else if(key>a[mid]) lo=mid+1; else return mid; } return -1; } public static void main(String[] args) { int i=0; int result; Scanner scanner = new Scanner(System.in); System.out.println("输入键值"); int key = scanner.nextInt(); System.out.println("输入一个元素小于10的数组"); int[] a= new int[20]; while (i<15){ a[i] = scanner.nextInt(); i++; } result = BinarySearch.rank(key, a); if (result<0) System.out.println(key+"不存在"); else System.out.println("所寻找键值在第"+(result+1)+"位上"); } }