算法第三章作业

Posted on 2018-11-04 13:51  岚月  阅读(90)  评论(0)    收藏  举报

1、对于动态规划算法的理解:

动态规划算法如二分算法一样,也是将问题划分为一个个更小的子问题,通过对子问题的求解,由小到大,求得最终解。同时,为了减少计算的重复,用一个多维数组保存每次子问题计算得到的解,在再次计算该子问题时直接调用数组,而该数组每次都只保留对应的最优解。

2、分别列出编程题1、2的递归方程:

1:先新建一个数组b[],然后从头至尾遍历,其中用一个max来保存比较过程中的较大值,每次比较a[i]和a[j]的值,若满足a[i]小于a[j](即数组次序变大)且b[j]大于max(为相对优的解),则将b[j]的值赋给max,最后将max加一赋给b[i](即最优解)。

2:先新建一个数组b[][]复制a[][]的值,然后用三重循环将从k站点到j站点的最少佣金计算(通过b[k][j]=min(b[k][j]+b[k][o],b[o][j]))。

3、说明结对编程情况:

这次结对编程的效果挺好,我们通过paiza.io实现了代码共同编辑的效果,方便了我们小组内的交流和编程。