//二分查找法。必须有前提:数组中的元素要有序。 public static inthalfSeach_2(int[] arr,int key){ int min,max,mid; min = 0; max =arr.length-1; mid =(max+min)>>1; //(max+min)/2; while(arr[mid]!=key){ if(key>arr[mid]){ min = mid+ 1; } elseif(key<arr[mid]) max = mid- 1; if(max<min) return-1; mid =(max+min)>>1; } return mid; } |