算法第三章总结
Posted timbal
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法第三章总结相关的知识,希望对你有一定的参考价值。
一、基本思想
与分治法相似,基本思想,将求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。
但是它们也有很大的不同之处,即适用于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。
二、设计步骤
动态规划法适用于最优化问题,通常可按以下4个步骤设计:
1)找出最优解的性质,并刻画其结构特征
2)递归地定义最优解
3)以自底向上的方式计算出最优值
4)根据计算最优值时得到的信息,构造最优解
三、问题特征
- 最优子结构性质:当一个问题的最优解包含了其子问题的最优解时,这个问题具有最优子结构
- 重叠子问题性质:在问题的求解过程中,很多子问题的解会被多次使用
四、编程题递归方程
1、单调递增最长子序列:m[i] = max{ m[k] + 1 | a[k] < a[i] } (1<= k < i)
m[i] = 1 (k = 0)
2、租用游艇问题:m[i] = max {cost[i][j] + m[j]}, i+1 <= j <= n
五、结对编程情况
1、课堂上学习的时候老师讲的很清楚,解题的思想很容易被理解,题目的代码也能看明白,但是真正自己写代码的时候,就感觉这是啥呀,就算写出了递归方程,想好了怎么填表,但是代码的实现困难重重,在以后要注意增强自己的实践动手能力。
2、结对编程的时候自己也要敢于动手,要把partner当成帮手,但不能完全依赖partner,要注重独立编程的能力。
以上是关于算法第三章总结的主要内容,如果未能解决你的问题,请参考以下文章