今天老师又做了一个随堂测试,要求是求一个数组的最大子数组,同时要求算法复杂度为o(n),下面是我们写出的思路和初步的算法和实现截图,实现了老师给的要求,但是算法复杂度为o(n^2),所以请大家互相交流,共同进步。小组成员:蔡迎盈 曹玉松
#include<iostream.h>
int bijiao(int list[],int n)
{
int q,t,i,j;
int max=list[0];
for(i=0;i<n;i++)
{
int p=list[i];
for(j=i+1;j<n;j++)
{
t=p+list[j];
if(p<t)
{
q=t;
t=p;
p=q;
}
}
if(max<p)
max=p;
}
return max;
}
void main()
{
int n;
int a[20];
char b='y';
while(b=='y'||b=='Y')
{
cout<<"请输入整数数组的个数:";
cin>>n;
cout<<"请输入数组:"<<endl;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
cout<<bijiao(a,n)<<endl;
cout<<"是否继续(继续请输入y,否则其他字符结束):";
cin>>b;
}
}