刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

low<=high
(2)high=mid-1
(3)low=mid+1
(4)low<=high
(5)low,mid-1
(6)mid+1,high

(7)A

解析:

对于C函数1和C函数2的填充:

  • C函数1是一个非递归的二分查找算法。在while循环中,需要保证low和high是有效的索引范围,所以条件(1)应为low <= high。当关键值key小于中间值mid时,查找范围缩小到数组的左半部分,即high变为mid-1;当关键值key大于中间值mid时,查找范围缩小到数组的右半部分,即low变为mid+1。如果找到了关键值,则返回其下标。若未找到,则返回-1。
  • C函数2是一个递归的二分查找算法。其逻辑与C函数1相似,但使用了递归方式。同样地,需要保证low和high是有效的索引范围,所以条件(4)为low <= high。递归地调用biSearch_rec函数,每次缩小查找范围。当关键值key小于中间值mid时,递归调用函数时high参数变为mid-1;当关键值key大于中间值mid时,递归调用函数时low参数变为mid+1。如果找到了关键值,则返回其下标;否则返回-1。

对于问题4.2:

  • 二分查找法在最坏的情况下,每次查找都会将搜索范围减半。因此,最多需要进行log2(n+1)次比较即可确定查找结果。所以答案是A. [log2(n+1)]。
创作类型:
原创

本文链接:请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share