课堂测试2014.3.10

今天老师又做了一个随堂测试,要求是求一个数组的最大子数组,同时要求算法复杂度为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;
	}
	
}

  

posted @ 2014-03-10 18:05  蔡迎盈2014  阅读(107)  评论(1编辑  收藏  举报