前提条件必须元素有序 ,推荐第一种
package binary;
public class Test {
public static void main(String[] args) {
int[] i = { 3, 6, 8, 9, 11, 55, 66 };
int index = BinarySearch(i, 11);
System.out.println(index);
}
public static int BinarySearch(int[] array, int key) {
int min = 0;
int max = array.length - 1;
while (min <= max) {
int mid = (min + max) >> 1;
if (key > array[mid])
min = mid + 1;
else if (key < array[mid])
max = mid - 1;
else
return mid;
}
return min;
}
public static int BinarySearch2(int[] array , int key){
int min = 0;
int max = array.length - 1;
int mid = (min + max) >> 1;
while( array[mid] != key){
if(key > array[mid])
min = mid + 1;
else if( key < array[mid])
max = mid - 1;
if(min > max)
return -1;
mid = (min + max) >> 1;
}
return mid;
}
}