第三章上机实践报告

1、实践的题目是:数字三角形.

2、问题的描述是:给定一个由 n行数字组成的数字三角形如下图所示:试设计一个算法,计算出从三角形 的

顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。

3、算法的描述是:

for(i=n-1;i>=1;i--){

     for(j=0;j<i;j++){

         if(b[i][j]>b[i][j+1])

         b[i-1][j]=b[i][j]+a[i-1][j];

         else

         b[i-1][j]=b[i][j+1]+a[i-1][j];

}}

自下向上开始比较,选择大的数字。

4、算法时间及空间复杂度分析(需要有分析过程):

因为算法里有2重for循环,所以时间复杂度为n^2;申请了a、b两个数组,空间复杂度为n^2。

5、我的心得体会(对本次实践收获及疑惑进行总结):

在运行这题目的代码的时候总是出错,后来发现是因为最后输出的时候输出的是b[1][1]而不是b[0][0];因为忽视了这个小毛病而导致浪费了很多时间,以后对于问题的逻辑要更加严谨才可以。

posted @ 2018-12-04 22:04  浮云就是敷衍  阅读(132)  评论(0编辑  收藏  举报