计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关

题目

计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关系式为(55);对应时间复杂度为(56)。

int Factorial (int n)

{//计算n!

if(n<=1)return 1;

else return n * Factorial(n-1);

}

(62)

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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

3、某递归算法求解时间复杂度的递推式如下,求问题规模为n时的时间复杂度。 T(n)=1 当n=0时 T(n)=T(n-1)+n+3 当n>0时


O(n)

第2题:

假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n表示,则该算法的时间复杂度为()。

A.O(logn)

B.O(n*logn)

C.O(n)

D.O(n^2)


B 解析:运用数学递推公式,可以推算出数量级O(nlgn)。

第3题:

设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n表示,则该算法的时间复杂度为(1)。

A.O(lgn)

B.O(nlgn)

C.O(n)

D.O(n2)


正确答案:B
解析:运用数学递推公式,可以推算出数量级O(nlgn)。

第4题:

设求解某问题的递归算法如下:

F(int n){

if(n=-=1){

Move(1);

}else{

F(n-1);

Move(n);

F(n-1);

}

}

求解该算法的计算时间时,仅考虑算法Move所做的计算为主要计算,且Move为常数级算法。则算法F的计算时间T(n)的递推关系式为(53):设算法Move的计算时间为k,当n=4时,算法F的计算时间为(54)。

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


正确答案:C
解析:本题考查对计算杉1算法进行时间复杂度分析的基本方法。直接递归算法的计算时间可以根据递归调用形式对应写出其递推关系式。按照题目中描述的算法形式,可知算法F的计算时间T(n)的递推关系式为T(n)=2T(n-1)+1,其中两次递归调用F(n-1)用时2T(n-1),算法Move的计算时间为常数,计为1。将上述递推关系式中常数1用k替换,求解可得T(n)=2n-1T(1)+,易知 T(1)=k,将n=4代入可得计算时间为15k。

第5题:

设求解某问题的递归算法如下:

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)。

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


正确答案:C

第6题:

● 设某算法的计算时间表示为递推关系式T(n)= T(n-1) + n (n>0) 及T(0)=1,则该算法的时间复杂度为 (65) 。


正确答案:D

第7题:

设求解某问题的递归算法如下: 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


正确答案:C
解析:直接递归算法的计算时间可以根据递归调用形式对应写出其递推关系式。按照题目中描述的算法形式可知,算法F的计算时间T(n)的递推关系式为T(n)=2T(n-1)+1,其中两次递归调用F(n-1)用时2T(n-1),算法Move的计算时间为常数,计为1。将上述递推关系式中常数1用k替换,求解可得T(n)=2n-1T(1)+k2i,易知T(1)=k,将n=5代入可得T(n)=2n-1T(1)+k2i=25-1k+k2i=24k+(20+21+22+23)k=31k。

第8题:

设求解某问题的递归算法如下:

求解该算法的计算时间时,仅考虑算法Move所做的计算为主要计算,且Move为常数级算法,并设算法Move的计算时间为k,当n=5时,算法F的计算时间为(62)。

A.7k

B.15k

C.31k

D.63k


正确答案:C
解析:直接递归算法的计算时间可以根据递归调用形式对应写出其递推关系式。按照题目中描述的算法形式,可知算法F的计算时间T(n)的递推关系式为T(n)=2T(n-1)+1,其中两次递归调用 F(n-1)用时2T(n-1),算法Move的计算时间为常数,计为1。

第9题:

假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n,T(1)=1表示,则该算法的时间复杂度为()

A.O(logn)

B.O(n*logn)

C.O(n)

D.O(n^2)


正确答案:B