算法之动态

动态算法,最早的例子看的是最小树,以为是贪心的变种。

后面又看了切钢条,才有点初步理解。首先dp.的programming 的意思是表格法。

动态算法,其实更应该看成分治的变种。

1.首先问题必须可以缩小规模下去,所以就是可以划出最优子问题。

2.和分治法不同的是,分治法中,n问题只依赖某个确定的比n小的问题, 而动态规划中,n问题,可能依赖 1,2,3,...n-1 中的任意多个,

    所以要求我们必须从最小规模求最优解开始,并记录最优解,供更大规模使用。正因为从最小规模的最优开始,这样导致看起来像贪心。呵呵。

 

先试着走最优的一步,但是并没有把走的那步一定当作解的一环,而是暂时更新结果,再重新回到开头。

 

动态法是一种,总领思想是分治,实施起来却像贪心的算法,必须具有最优子问题特性。

一般采用自底向上的表格法,也可以采用 形式上自顶向下,本质自底向上的递归来处理。

 

常见算法

最短路径,最小树

切钢条

01背包

找零

posted @ 2019-03-12 10:09  琴鸟  阅读(173)  评论(0编辑  收藏  举报