第五章测试
1.将递归算法转换成对应的非递归算法时,通常需要使用(  )来保存中间结果
A:链表 B:树 C:队列 D:栈
答案:D
2.一个对象如果(   )由它自身来定义(或描述),则称其为递归。
A:不能 B:全部的 C:完全 D:部分的 3.下面哪种情况不能用递归来实现
A:汉诺塔 B:直接插入排序 C:阶乘函数 D:八皇后 4.一个递归函数能够正确运行的必要条件是
A:有递归出口 B:有输入 C:有分支结构 D:有循环结构 5.在递归函数的递归调用过程中问题的规模是
A:有时大有时小 B:逐渐变小的 C:逐渐变大的 D:不变的 6.一个递归算法必须包括
A:终止条件和递归部分 B:递归部分 C:终止条件和迭代部分 D:迭代部分 7.在将一个函数的实现从递归实现改为非递归实现时,一般需要用到下列哪个数据结构?
A:栈 B:队列 C:双向链表 D:二叉树 8.若实现一个未加入任何优化的递归版本的斐波那契序列实现,该递归版本实现的时间复杂度和空间复杂度是怎样的?(不考虑整数溢出和机器的内存限制)
A:时间复杂度O(2^n), 空间复杂度O(2^n) B:时间复杂度O(2^n), 空间复杂度O(n) C:时间复杂度O(n), 空间复杂度O(n) D:时间复杂度O(n),空间复杂度O(2^n) 9.某递归算法的递归关系式为T( n ) = 2*T(n/2) + O( n ),那么它所对应的时间复杂度为
A:O(n) B:O(n^2) C:O(log n) D:O(n*log n) 10.采用递归方式对顺序表进行快速排序。下列关于递归次数的叙述中,正确的是()
A:递归次数与初始数据的排列次序无关 B:递归次数与每次划分后得到的分区的处理顺序无关 C:每次划分后,先处理较短的分区可以减少递归次数 D:每次划分后,先处理较长的分区可以减少递归次数

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(1) dxwkbang
返回
顶部