算法第三章作业

挖地雷

1.1 递归方程式

 b[][]  用0,1表示两地窖之间是否连接 ,1为连接;

a[]     用于存储对应地窖的地雷数

m[i]=max{a[i]+m[j],m[i]}  1<=i<=n,i+1<=j<=n,b[i][j]=1

1.2 给出填表法中表的维度、填表范围和填表顺序。

用数组m[]记录从当前数组下标地窖出发可以挖到的最大地雷数;

维度:一维

范围:[1,n]

顺序:从右往左,即从n到1

1.3 分析该算法的时间和空间复杂度

时间复杂度:O(n^2)

空间复杂度:O(n^2)

2. 你对动态规划算法的理解

动态规划算法:将一个问题分解为许多个子问题,通过求解子问题,组合成最优解,从局部最优推向全局最优。这些子问题其中有些是重叠的,为了多次求解重叠子问题,动态规划常用填表法

与分而治之算法不同的是,这些子问题不是相互独立的;

与贪心算法不同的是,贪心算法考察局部,直接决策,构造最优解。适用于如部分背包问题(可分割),而动态规划用于0-1背包问题(不可分割)

解题步骤:问题结构分析->递推关系建立->自底向上计算->最优方案追踪

3. 说明结对编程情况

我的结对伙伴是许剑瀚,上周是主要由我实现代码,他讲解代码。

先各自完成自己的,后完成的理解先完成的代码。

posted @ 2020-10-31 14:28  张智恒  阅读(85)  评论(0编辑  收藏  举报