码迷,mamicode.com
首页 > 编程语言 > 详细

算法第三章上机实践报告

时间:2019-10-19 23:32:49      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:复杂度   数组   提高   报告   计算   心得体会   bsp   时间   心得   

1. 实践题目

    7-1数字三角形

    给定一个由 n行数字组成的数字三角如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。

           7

         3  8 

       8  1  0

     2  7  4  4

   4  5  2  6  5

输出 30

 

2. 问题描述

    使用初始值-1的二位数组记录每个子问题的最大值,进而得到最大数字总和路径

 

 

3. 算法描述

 

    递归方程:

 

         maxSum[i][j] = a[i][j];       (n == i)

         maxSum[i][j] = max(sum(i+1, j), sum(i+1,j+1)) + a[i][j];
  用动态规划自底向上计算
   maxSum[i][j]用于记录存储数字三角形的a[i][j]对应位置至底的最大值(子问题)
 
4. 算法时间及空间复杂度分析
     递归方程执行了(n-1+1) *n/2 = 1/2n^2(三角形元素个数)
     时间复杂度:O(n) = n^2
 
5. 心得体会
    在动态规划的问题中,最重要的是找到递归方程
    根据需求使用填表或备忘录方法以提高效率

 

    

算法第三章上机实践报告

标签:复杂度   数组   提高   报告   计算   心得体会   bsp   时间   心得   

原文地址:https://www.cnblogs.com/qq1065928103/p/11695882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!