阅读以下说明、C函数和问题,回答问题,将解答填入对应栏内。 【说明】 当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。 下面的函数biSearch(int r[],int low,int high,int key)用非递归方式在数

admin2018-11-21  68

问题 阅读以下说明、C函数和问题,回答问题,将解答填入对应栏内。
【说明】
当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。
下面的函数biSearch(int r[],int low,int high,int key)用非递归方式在数组r中进行二分查找,函数biSearch_rec(int r[],int low,int high,int key)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回一1。
【C函数1】
int biSearch(int r[],int low,int high,int key)
//r[low..high]中的元素按非递减顺序排列
//用二分查找法在数组r中查找与key相同的元素
//若找到则返回该元素在数组r的下标,否则返回一1
{
int mid;
while(    (1)    ){
mid=(low+high)/2;
if(key==r[mid])
return mid;
else if(key<r[mid])
(2)
else
(3)
}/*while*/
return  一1;
}/*biSearch*/
【C函数2】
int biSearch—rec(int r[],int low,int high,int key)
//r[low..high]中的元素按非递减顺序排列
//用二分查找法在数组r中递归地查找与key相同的元素
//若找到则返回该元素在数组r的下标,否则返回一1
{
int mid;
if  (    (4)    )  (
mid=(low+high)/2;
if  (key==r[mid])
return mid;
else  if  (key<r[mid])
return bisearch_rec((5),key);
else
return biSearch_rec((6),key);
}/*if*/
return  -1;
}/*biSearch_rec*/
请填充C函数1和C函数2中的空缺,将解答填入对应栏内。

选项

答案(1)low<=high或其等价形式 (2)high=mid一1或其等价形式 (3)low=mid+1或其等价形式 (4)low<=high或其等价形式 (5)r,low,mid一1 (6)r,mid+1,high

解析
转载请注明原文地址:https://jikaoti.com/ti/58W7FFFM
0

最新回复(0)