递归算法时间复杂度题目求解答....

T(n)=(1/n)(T(0)+T(1)+....+T(n-1))+5n求时间复杂度是多少求详细解答..谢谢... T(n) =(1/n) (T(0) + T(1) + .... + T(n - 1)) + 5n 求 时间复杂度是多少 求详细解答..谢谢 展开
 我来答
Many_question
推荐于2016-12-01 · TA获得超过2852个赞
知道大有可为答主
回答量:2040
采纳率:66%
帮助的人:2302万
展开全部
如果就按这个递归式子算,计算第n项需要的计算量An = ΣAi {i,0 -> n-1}
因此An = S(n-1) => An = 2*A(n-1)
又因为0,1两项可以直接算得. 故 A0 = 1, A1 = 1
所以第n项的计算量为{n=0 : 1, n>0 : 2^(n-1)}
总的来说是O(2^n)级别

当然真正实现这个算法的时候不会这么采用暴力的计算.如果加入记忆化,把每个Ti的值先记下,则时间复杂度可以降到O(n^2)级别

进一步优化,可以尝试计算这个递归数列的通项.不过我简单试了下发现最后要计算1/n的和,这个据我所知只能直接计算.这样整个算法的复杂度可以降到O(n).

至于楼下说的O(1)的常数做法,我个人没有想到,也许在数据规模小的情况下可以使用查表法做到.
真梅嘉斯
2013-04-28 · TA获得超过145个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:89.2万
展开全部
编程序能做到o(1)的。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式