閱讀以下說明、C函數(shù)和問題,回答問題1和問題2將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
當(dāng)數(shù)組中的元素已經(jīng)排列有序時,可以采用折半查找(二分查找)法查找一個元素。下面的函數(shù)biSearch(intr[],intlow,inthigh,intkey)用非遞歸方式在數(shù)組r中進行二分查找,函數(shù)biSearch_rec(intr[],intlow,inthigh,intkey)采用遞歸方式在數(shù)組r中進行二分查找,函數(shù)的返回值都為所找到元素的下標(biāo);若找不到,則返回-1。
【C函數(shù)1】
intbiSearch(intr[],intlow,inthigh,intkey)
//r[low..high]中的元素按非遞減順序排列
//用二分查找法在數(shù)組r中查找與key相同的元素
//若找到則返回該元素在數(shù)組r的下標(biāo),否則返回-1
{
intmid;
while((1)){
mid=(low+high)/2;
if(key==r[mid])
returnmid;
elseif(key<r[mid])
(2);
else
(3);
}/*while*/
return-1;
}/*biSearch*/
【C函數(shù)2】
intbiSearch_rec(intr[],intlow,inthigh,intkey)
//r[low..high]中的元素按非遞減順序排列
//用二分查找法在數(shù)組r中查找與key相同的元素
//若找到則返回該元素在數(shù)組r的下標(biāo),否則返回-1
{
intmid;
if((4)){
mid=(low+high)/2;
if(key==r[mid])
returnmid;
elseif(key<r[mid])
returnbiSearch_rec((5),key);
else
returnbiSearch_rec((6),key);
}/*if*/
return-1;
}/*biSearch_rec*/
問題:4.1(12分)
請?zhí)畛銫函數(shù)1和C函數(shù)2中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)。
問題:4.2(3分)
若有序數(shù)組中有n個元素,采用二分查找法查找一個元素時,最多與()個數(shù)組元素進行比較,即可確定查找結(jié)果。
(7)備選答案:
A.[log2(n+1)]B.[n/2]C.n-1D.n