预防针:
首先得是个有序的序列,然后从序列的一半开始比较,若指定元素大于mid,那么就在mid的右边进行查找;如果小于就在mid的左边进行查找;如果等于就返回mid。
Java代码
public static int find(int[] a,int key)
{
int low = 0;
int high = a.length-1;
while(low <= high){
//这里一定是high+low
int mid = (high +low)/2;
if(key == a[mid]){
return mid;
}
if(key > a[mid]){low = mid+1;}
if(key < a[mid]){high = mid-1;}
}
return -1;
}