阅读以下说明、C函数和问题,回答问题1和问题2将解答填入答题纸的对应栏内。 当

免费题库2022-08-02  47

问题 阅读以下说明、C函数和问题,回答问题1和问题2将解答填入答题纸的对应栏内。当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。下面的函数biSearch(int r[],int low,int high,int key)用非递归方式在数组r中进行二分查找,函数biSearch_rec(int r[],int low,int high,int key)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回-1。【问题1】请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。【问题2】若有序数组中有n个元素,采用二分查找法查找一个元素时,最多与(7)个数组元素进行比较,即可确定查找结果。备选答案:A.?log2n+1?B.?n/2?C.n-1D.n

选项

答案

解析 (1)low<=high
(2)high=mid-1
(3)low=mid+1
(4)low<=high
(5)low,mid-1
(6)mid+1,high
解析:(1)表示二分法可以继续进行;
(2)递归调用左半部分;
(3)递归调用右半部分;
(4)表示二分法可以继续进行;
(5)递归调用左半部分;
(6)递归调用右半部分;
(7)对有序表,根据二分查找法定义,每次比较之后问题规模都会减小一半,所以2k=n,解得k=log2n,向下取整,又因为最后只剩一个元素时,也要执行查找过程,所以+1。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2426784.html

最新回复(0)