- 最后登录
- 2012-6-22
- 在线时间
- 44 小时
- 阅读权限
- 20
- 注册时间
- 2008-11-30
- 积分
- 274
- 帖子
- 164
- 精华
- 2
- UID
- 63527
- 性别
- 男
- 积分
- 274
- 帖子
- 164
- 精华
- 2
- UID
- 63527
- 性别
- 男
|
原帖由 zxl0714 于 2009-4-4 22:01 发表
看来你还没有理解啊。。。。。
动态规划的主要思想就是避免重复计算,你可以这么想,为了确定第1步我们要计算出所有的来比较,第2步我们就不用再计算了,因为第1步已经计算过了。
all, right! 正解!
其实不管是用递归还是动态规划,这个问题都可以求解,这两种方法求解问题各有千秋。
相比之下,递归的思路容易理解,但是动态规划的效率要跟高些(但动态规划并不总是能将指数量级的复杂度变成多项式级别的),我们把它称作循环式;
但是如果在递归的时候记录中间过程的话,递归式也不会输给循环式(这个时候已经不是严格的递归了)。
现代计算机程序设计里面的一个非常核心的问题就是如何把递归式变成循环式,美国麻省理工学院的教科书《计算机程序的构造和解释》对这方面做了比较详尽的讲解,但是太难了,我也没有耐心把它看完。 |
|