算法第三章作业
1. 你对动态规划算法的理解(2分)
我觉得动态规划是一种分治法的伪进阶型,它将一个大问题可以分成若干个小问题后,解决子问题,然后将子问题的解插入到一个表中,用一个表来记录所有的已经得到答案的子问题的解,后面就可以发现,无论子问题的解是否被用到,其都在表中,接着求问题便可以节省大量的时间。
2. 分别列出编程题1、2的递归方程(2分)
3-1
m[i] = 1 (n=1)
m[i] = max{ m[k}+1 } (1=<k<i)
3-2
m[i] = min{ c[i][j] +m[k],c[i][j] } (i>1)
(若i=1,则为0)
3. 说明结对编程情况(1分)
和同学一起进行编程,同时能相互指出错误,并且能够探讨思路,在讨论中还能加深对题目的理解,然后推导出递归方程,接着能够对代码进行分块处理,形成一个个清晰的思路,在写代码的同时还锻炼了我们审计代码的能力。