算法第三章作业

1. 单调递增最长子序列题目的分析:

1.1 递归方程式:dp[i]={max(dp(j))+1} j<i

1.2 填表法

填表法中表的维度:一维;

填表范围:0~n;

填表顺序: 自左向右。

1.3 算法的时间和空间复杂度

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

空间复杂度:O(n)

2 对动态规划算法的理解

动态规划算法与分治法类似,其基本思想是将待求解问题分解成若干子问题,先求问题,再结合这些子问题的解得到原问题的解。与分治法不同的是,适合用动态规划法动的问题经分解得到的子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到子问题数目太多,以致最后解决原问题需要耗费指数级时间。然而,不同子问题的数目常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存动决的子问题的答案,在需要时再找出已求得的答案,这样可以避免大量的重复计算,从面到多项式时间算法。为了达到此目的,可以用一个表来记录所有已解决的子问题的答案管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规地基本思想。具体的动态规划算法多种多样,但它们具有相同的填表格式。

3 结对编程情况

我的结对编程伙伴是陈谋。在结对编程的过程中,他负责敲打代码,我负责监督指导。

在编程开始时,我们先各自思考,然后再一起讨论,选择最佳的方案进行实践。

 

posted @ 2020-11-01 00:50  DetectiveFang  阅读(81)  评论(0)    收藏  举报