算法第三章上机实践报告
Posted qq1065928103
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法第三章上机实践报告相关的知识,希望对你有一定的参考价值。
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. 心得体会
在动态规划的问题中,最重要的是找到递归方程
根据需求使用填表或备忘录方法以提高效率
以上是关于算法第三章上机实践报告的主要内容,如果未能解决你的问题,请参考以下文章