算法分析与设计第二章作业
求最大子段和
一、
1、定义temp和max,temp暂存遍历过程中的字段和
2、从0开始遍历
3、比较temp+A[j]和A[j]的大小,将大的赋给temp
4、比较temp和max的大小,大的赋给max
5、输出最大字段和max
#include <iostream>
using namespace std;
int main()
{
int n;
int max=0;
int temp=0;
cin>>n;
for(int i=1;i<=n;i++)
{
int num;
cin>>num;
temp+=num;
if(temp>max)max=temp;
if(temp<0)temp=0;
}
cout<<max<<endl;
return 0;
}
二、O(nlogn)
三、 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。
思考:运用备忘录可以更快地解决问题
...全文