问题描述
我目前需要帮助,以完全了解有关递归的主题。如果有人能帮助我,我将非常感激。请为循环运行时添加基本条件(T(0)),并说明为什么选择了其他谢谢!
问题1:
function ex1(A[],n)
if n <= 10 then
return A[n]
else
x = 0
for i= 1 to 4 do
for j= 1 to [n/2] do
x = x + A[i]
end for
x= x + ex1 (A,[n/4])
end for
return x
end if
end function
这是到目前为止我对第一部分的不满: 时间复杂度: T(n)= Cn + T(n / 4),T(n / 4)= Cn / 4 + T(n / 16),T(n)= Cn + Cn / 4 + T(n / 16),T (n)= Cn / 4 ^ k + T(n / 4 ^ k),令K =一些常数。 (我不知道如何找到使用n求解k的初始条件。)我选择了10。 解决:
cn*sum(from i=0 to k-1)(1/4^i) + T(10) ) =
Upper Bound,Cn*sum(i=0 to infinity)((1/4)^i + C).
Using geometric sum,(1/4)^i evaluates to 4.
final answer 4*Cn and O is in (n).
我不确定。
问题2:
function ex2(A[],n)
if n <= 12 then
return A[n]
else
x = 0
for i= 1 to [n/2] do
for j= 1 to [n/4] do
x = x + A[i] + A[j]
end for
x= x + ex2 (A,[n-j])
end for
return x
end if
end function
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)