题目详情

阅读以下说明、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-1

D.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。

你可能感兴趣的试题

单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.0
  • B.1
  • C.2
  • D.3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.1、1
  • B.1、2
  • C.2、2
  • D.2、3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.3
  • B.4
  • C.5
  • D.6
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.V(S3)和V(S5)V(S6)
  • B.P(S3)和V(S5)V(S6)
  • C.V(S3)和P(S5)P(S6)
  • D.P(S3)和P(S5)P(S6)
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.243ms
  • B.246ms
  • C.254ms
  • D.280ms
查看答案

相关题库更多 +