public class BinarySearch {
public int binarySearch(int a[], int goal) {
int low = 0;
int high = a.length - 1;
int middle;
while(low <= high) {
middle = (high - low) / 2 + low;
if(goal == a[middle]) {
return middle;
}
else if(goal < a[middle]) {
high = middle - 1;
} else {
low = middle + 1;
}
}
return -1;
}
public static void main(String[] args) {
BinarySearch binarySearch = new BinarySearch();
System.out.println(binarySearch.binarySearch(new int[] {1, 2, 3, 4, 6, 7, 8, 9}, 3));
System.out.println(binarySearch.binarySearch(new int[] {1, 2, 3, 4, 6, 7, 8, 9}, 5));
}
}
结果:
2
-1