算法第三章作业

1.单调递增最长子序列

1.1 递归方程式

  a[n]:表示第n个数字

  b[n]:表示以第n个数字为结尾的最长子序列

  递归方程式 :b[j] = m(i,j) = b[i] + 1 , a[j] > a[i]

                                                    b[j]       , a[j] <= a[i]

                                                    1           , j==1

1.2 表的维度是1维,即b[n], 范围是从1-n,填表顺序从左往右(从1到n)

1.3 时间复杂度:双重循环:O(n的平方)

  空间复杂度:一维数组 O(n)

 

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

     动态规划是把一个原问题拆解成一堆子问题,若这些小问题有较多重复时,则可以自底向上从最终子问题向原问题逐步求解。

     动态规划算法的设计步骤:

  1. 找出最优解的性质,并刻画其结构特征
  2. 递归地定义最优解的代价
  3. 自底向上地计算优化解的代价保存之,并获取构造最优解的信息
  4. 根据构造最优解的信息构造优化解

3.说明结对编程情况

    每个人先独立思考,然后交换思路,提出各自的想法和问题,再讨论得出解决办法。

posted @ 2020-11-01 02:21  _LJF  阅读(55)  评论(0编辑  收藏  举报