国家开放大学 / 数据结构(本)
题干
以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格:
typedef struct
{
int key;
……
}NODE;
int Binary_Search(NODE a[ ],int n,int k)
{
int low,mid,high;
low=0;
high=n-1;
while()
{
mid=(low+high)/2;
if(a[mid].key==k)
return ;
else if()
low=mid+1;
else ;
}
return -1;
}
设数组元素:a[0]=2;a[1]=5;a[2]=3;a[3]=4;a[4]=9;a[5]=6;a[6]=1;a[7]=10;按上述程序查找元素5,能否成功查到,说明理由。
反馈
(1)low<=high
(2)mid
(3)a[mid].key<k
(4)high=mid-1
(5)不能,因为不是有序序列,不能用折半查找。
参考答案:
佳题速递: