如何解决使用替换,递归树或归纳法编写描述函数最坏情况运行时的递归关系
我目前需要帮助,以完全了解有关递归的主题。如果有人能帮助我,我将非常感激。请为循环运行时添加基本条件(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 举报,一经查实,本站将立刻删除。