前提条件必须元素有序 ,推荐第一种
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;
}
}