设置low在有序表最左边,high在最右边,mid为(low+high)/2;取中间位置,
当mid的值等于k,返回第mid+1个(从0开始)
当mid的值大于k,从mid左边开始找,令high=mid-1;
当mid的值小于k,从mid右边开始找,令low=mid+1;
struct record (int key;int others;);
int blsearch(struct record r[],int k)
{
int low =0,mid,high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(r[mid].key==k) return mid+1;
else if(r[mid].key>k) high=mid-1;
else low=mid+1;
}
return 0;
}