函数BinSearch实现二分查找,请回答下列问题。
(1)在空白处填写适当内容,使函数功能完整。
(2)查找成功时函数的返回值是什么?
(3)查找失败时函数的返回值是什么?
intBinSearch(SeqListR,KeyTypek,intn)
{intlow=0,mid,high=n一1;
while(10w<=high){
mid=(1);
if(R[mid].key==k)
returnmid;
if(R[mid].key>k)
high=mid一1;
else
low=mid+1;
}
return一1;
}
(1)(low +high)/2 (2)成功时返回待查元素所在的位置 (3)失败返回一1 解析:二分查找查找所要查找的元素时,首先与序列中间的元素进行比较,如果大于这个元素,就在当前序列的后半部分继续查找;如果小于这个元素,就在当前序列的前半部分继续查找,直到找到相同的元素,或者所查找的序列范围为空为止。