算法第三章实验报告
Posted sufeifan1020
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法第三章实验报告相关的知识,希望对你有一定的参考价值。
实践报告任选一题进行分析。内容包括:
- 实践题目
最大子段和
- 问题描述
给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。
要求算法的时间复杂度为O(n)。
- 算法描述
for(i=1;i<=n;i++)
cin>>a[i];
ma=b[1]=a[1];
for(i=2;i<=n;i++){
if(b[i-1]<=0)
ma=b[i-1]=0;
b[i]=b[i-1]+a[i];
if(b[i]<0){
i++;
b[i]=a[i];
}
ma=max(ma,b[i]);
}
- 算法时间及空间复杂度分析(要有分析过程)
时间复杂度:算法中只用到一维数组的遍历,因此时间复杂度为O(n);
空间复杂度:使用一维数组b[]存放字段和,空间复杂度为O(n)。
- 心得体会(对本次实践收获及疑惑进行总结)
小组讨论收获匪浅。
以上是关于算法第三章实验报告的主要内容,如果未能解决你的问题,请参考以下文章