更多"试写出二分查找的递归算法。"的相关试题:
[单项选择]将一个递归算法改为对应的非递归算法时,通常需要使用______。
A. 栈
B. 队列
C. 循环队列
D. 优先队列
[单项选择]用递归算法实现n个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为()
A. n
B. n/2
C. log2n
D. log2(n+1)
[简答题]以二叉链表作为存储结构,试编写递归算法实现求二叉树中叶子结点个数。
[简答题]试编写一个非递归算法.实现求以二叉链表存储的二叉树中q结点的祖先。
[单项选择]
若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用 (14) 算法,因为 (15) 。
(14)处填()。
A. 先递归后递推
B. 先递推后递归
C. 递归
D. 递推
[单项选择]
若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用()算法,因为()。
因为()
A. 递推的效率比递归高
B. 递归宜于问题分解
C. 递归的效率比递推高
D. 递推宜于问题分解
[单项选择]
若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用()算法,因为()。
若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用()算法。
A. 先递归后递推
B. 先递推后递归
C. 递归
D. 递推
[单项选择]
计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关系式为(27);对应时间复杂度为(28)。
int Factorial(int n)
//计算n!
if(n<=1)return 1;
else return n * Factorial(n-1);
(27)处填()。
A. T(n)=T(n-1)+1
B. T(n)=T(n-1)
C. T(n)=2T(n-1)+1
D. T(n)=2T(n-1)-1
[单项选择]一个递归算法必须包括( )。【武汉大学2000二、21
A. 递归部分
B. 终止条件和递归部分
C. 迭代部分
D. 终止条件和迭代部分
[单项选择]设n的初始值为正整数,设计一个递归算法如下:
int fact (int n) {
if (n<=0) return 1;
else return (n*fact(n-1));
}
以下叙述中正确的是______。
A. 计算fact(n)需要执行n次函数调用
B. 计算fact(n)需要执行n+1次函数调用
C. 计算fact(n)需要执行n+2次函数调用
D. 计算fact(n)需要执行n-1次函数调用
[单项选择]设有一个递归算法如下
im fact(int n)
if(n<=0)return 1;
else return n * fact(n-1);下面正确的叙述是()。
A. 计算fact(n)需要执行n次函数调用
B. 计算fact(n)需要执行n+1次函数调用
C. 计算fact(n)需要执行n+2次函数调用
D. 计算fact(n)需要执行n-1次函数调用
[单项选择]
设求解某问题的递归算法如下:
F(int n)
if n=1
Move(1)
else
F(n-1);
Move(n);
F(n-1);
求解该算法的计算时间时,仅考虑算法Move所做的计算为主要计算,且Move为常数级算法。则算法F的计算时间T(n)的递推关系式为 (9) ;设算法Move的计算时间为k,当 n=4时,算法F的计算时间为 (10) 。
(9)处填()。
A. T(n)=T(n-1)+1
B. T(n)=2T(n-1)
C. T(n)=2T(n-1)+1
D. T(n)=2T(n+1)+1
[单项选择]设求解某问题的递归算法如下:
F(int n)
if n==1
Move(1);
else
F(n-1);
Move(n);
F(n-1);
求解该算法的计算时间时,仅考虑算法Move所进行的计算为主要计算,且Move为常数级算法,设算法Move的计算时间为k,当n=5时,算法F的计算时间为 (42) 。
A. 7k
B. 15k
C. 31k
D. 63k