博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划
阅读量:4959 次
发布时间:2019-06-12

本文共 442 字,大约阅读时间需要 1 分钟。

动态规划有两种等价的实现方法

  • 备忘的自顶向下法。从最大的问题考虑它的子问题。递归形式,过程中会保存每个子问题的解。
  • 自底向上法。将子问题按规模排序,按由小到大的顺序进行求解。每个子问题只需求解一次。当我们求解它(第一次遇到时),它的所有前提子问题都已经求解完成。

1. 两种方法有相同的渐近运行时间。

2. 时间差别:在某些情况下,自顶向下没有真正递归考察所有可能的子问题。由于没有频繁的递归函数调用开销,自底向上方法的时间复杂性函数有更小的系数

3. 如何选择:通常情况下,如果每个子问题至少求解一次自底向上动态规划算法会比自顶向下备忘算法快,因为自底向上算法没有递归调用的开销。

相反,如果子问题空间中的某些子问题完全不必求解备忘方法就会体现出优势。

                                                                                                            ——《算法导论》第三版

转载于:https://www.cnblogs.com/coolqiyu/p/5722716.html

你可能感兴趣的文章
(转)Scrapy 深入一点点
查看>>
荧光激活细胞分选( FACS)
查看>>
传球游戏
查看>>
理论相关概念原理
查看>>
本地存储
查看>>
MP3的播放与停止
查看>>
两个周末,两个湖
查看>>
开发环境搭建
查看>>
入门GTD时间管理系统必读
查看>>
Codeforces Round #367 (Div. 2) Vasiliy's Multiset 异或字典树带删除模板
查看>>
牛客(59)按之字形顺序打印二叉树
查看>>
JavaScript 图表库 xCharts
查看>>
Android项目的目录结构
查看>>
C++中“引用”的底层实现
查看>>
jquery datatable 参数
查看>>
vuex中的dispatch和commit
查看>>
mybatis实战教程二:多对一关联查询(一对多)
查看>>
NodeMCU文档中文翻译 3 构建固件
查看>>
前端学习☞jquery
查看>>
10分钟搞懂树状数组
查看>>