算法第三章作业
1、单调递增最长子序列题目分析:
1.1 根据最优子结构性质,列出递归方程式:
给出的数组的长度为n,定义一个数组L[i]来存放从a0到ai的最长子序列长度,递归方程式为L(i)=max{L(j)+1}(j<i).
1.2 给出填表法中表的维度、填表范围和填表顺序:
表的维度:一维
填表范围:[0,n)
填表顺序:从左到右
1.3 分析该算法的时间和空间复杂度:
时间复杂度:填表时需要遍历一次数组且需要与数组的其他元素做比较,因此时间复杂度为O(n^2).
空间复杂度:因为需要有一个一维数组来记录最长子序列长度,所以空间复杂度为O(n).
2、对于动态规划算法的理解:
若一个问题具有最优子结构,则可以用动态规划算法来求解,且如果求解的子问题有重复的部分,这时候用动态规划算法比分而治之效率更高,可以用填表法来避免重复的计算。同样,用动态规划解决问题最重要的还是列出递归方程式,只有列对了递归方程式,才有正确解决问题的可能。
3、结对编程情况:
本次的结对编程相对于前两次来说较为顺利,因为与队友建立了比较好的默契,在分析算法问题时能够针对有疑惑的地方展开讨论,从而使效率提高。

浙公网安备 33010602011771号