微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

编写具有指定复杂度的递归算法

如何解决编写具有指定复杂度的递归算法

我正在学习算法分析课程,有一个练习让我陷入困境,因为它要求的复杂性和要求太具体,这就是问题所在:

一个递归算法,给定一个整数 n 作为输入,打印 Θ(n^log4 11(log n)) 星号。为了证明复杂性,您可以使用主定理。

解决方法

回忆主定理的第二种情况。 众所周知,

T(n) = aT(n/b)+f(n)

如果 f=Theta(n^log_{b}{a}) 那么`T(n) = Theta(n^log_{b}{a}*logn)

因此,您需要对输入大小的 0.25 进行 11 次递归调用, 并在每次通话中做一个n^log{4}{11}“工作”

因此,直接的方法是:

define f (n):
m = floor(log_{4}{11})
print ('*' * pow(n,m))
for i in (0,11):
   f(floor(n/4))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。