| 
 
| 折半查找,可以提供效率,但是必须保证该数组时有序的数组 第一种方法;
 pubilc static int halfsearch(int [] arr,int key )
 {
 int  min,max,mid;
 max=arr.length-1;
 mid=(max+min)/2;
 while(arr[mid]!=key)
 {
 if(key>arr【mid】)
 min=mid+1;
 else if (key<arr[mid])
 max=mid-1;
 if (min>max)
 return-1;
 mid=(max+min)/2;
 }
 return  mid;
 }
 折半查找第二种方法
 public  static int halfsearch_2(int 【】  arr,int key)
 {
 int  min=0,maxar.length-1,mind;
 while(min<=max)
 {
 mid=(max+min)>>1;
 if (key>arr【mid】)
 min=mid+1;
 else if (key<arr[mid])
 max=mid-1;
 else
 return  mid;
 }
 ruturn-1;
 }
 
 class  ArrayTest1
 {
 public    static void   main(String[] args)
 int [] arr={2,4,5,7,19,32,45}
 int index=halfsearch(arr,320);
 System.out.println("index="+index);
 }
 | 
 |