5、补充BEGIN-END之间的内容,完成折半查找算法
#include
typedef int KeyType; //定义关键字类型为int
typedef char InfoType;
typedef struct
{ KeyType key; //关键字项
InfoType data; //其他数据项,类型为InfoType
} RecType; //查找元素的类型
int BinSearch(RecType R[],int n,KeyType k) //折半查找算法
{ int low=0,high=n-1,mid;
while (low<=high) //当前区间存在元素时循环
{
/**********BEGIN**********/
/*
找到中间位置mid
查找mid位置的值,如果成功返回其逻辑序号mid+1
如果小于mid位置的值,继续在R[low..mid-1]中查找
如果大于mid位置的值,继续在R[mid+1..high]中查找
*/
/**********END**********/
}
return 0; //未找到时返回0(查找失败)
}
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;
}