public static void main(String[] args) {
// TODO Auto-generated method stub
//1 2 3 4 5 6 7 8 9
int [] a = {1,2,3,4,5,6,7,8,9};
System.out.println(bsearch(a,6));
}
public static int bsearch (int [] a,int key){
int low = 0;
int high = a.length - 1;//8
while (low <= high) {
int mid = low + (high - low) / 2;
if (a[mid] > key)
high = mid;//没有所谓的减一
else if (a[mid] < key)
low = mid;/没有所谓的加一
else
return mid;
}
return -1;
}
以上是我自己发现别人写的二分算法的bug,要是有什么写的不对的,还望留言。