/* 折半查找 */ class TwoSearch { //折半查找可以提高效率,但必须得保证是有序的数组 public static int halfSearch(int[] arr,int key)//折半查找函数 { int min,max,mid; min=0; max=arr.length-1; mid=(min+max)/2; while(arr[mid]!=key) { if(key>arr[mid]) { min=mid+1; }else if(key<arr[mid]) { max=mid-1; } if(min>max) //如果数组中没有所求的数,返回-1 return -1; mid=(min+max)/2; //保证函数继续 } return mid; } public static void main(String[] args) //主函数 { int[] arr={6,13,25,33,56,67,89,99,123,387};//必须定义有序的数组 int key=halfSearch(arr,89); System.out.println("key= "+key); } }