yzza123 2017-07-28 15:31 采纳率: 0%
浏览 1822

递归算法的时间复杂度

T(m,n) = T(m-1,n) + T(m,n-1)

对于这样一个递归算法,其时间复杂度是多少呀?

问题背景:

在一个正方网格中,只能沿着网格往上走或者往右走,求原点到指定坐标中有多少条路径。

为此设置一个递归函数,当指定坐标(m,n)中的m==0或者n==0时,函数值为1.

除此之外的场合,等于其(m-1,n)和(m,n-1)路径之和。

于是有T(m,n) = T(m-1,n) + T(m,n-1)递归算法。但是时间复杂度实在不会算,看了很多方法,但不知道用什么方法算。。。

附:附:有人说是O[ (m+n) ^2 ],我自己算是O[2 ^ (m+n) ]我的求解过程如图片所写...不知道正误...
请教!
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-07-29 13:46
    关注

    如果是没有回路的,树,那么可以按照你的图算,是O(2^N)
    如果是正方形网格的不重复遍历,也就是有回路的图,那么就是O(N^2)

    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题