首尾相连数组
2016-03-27 15:07
162 查看
一、实验思路
按要求随机产生几个数,然后先求数组的最大子数组的最大值,然后再比较他们的最大值求出整个子数组的最大子数组和
丁官甲:程序编码和思路讨论 吴论:思路讨论,代码编程后的测试和审核
二、实验代码
#include<iostream.h>
#include<stdlib.h>
int Maxsum(int *a,int n)//一维数组的求最大
{
int tempstart =0,sum=0,max=-1000;
int i;
int start,end;
start=end=0;
for(i=0;i<n;i++)
{
if(sum<0)
{
sum=a[i];
tempstart=i;
}
else
{
sum+=a[i];
}
if(sum>max)
{
max=sum;
start=tempstart;
end=i;
}
} //
cout<<"start="<<start<<endl<<"end="<<i<<endl;
return max;
}
int main()
{
int b[10000];
int max[10000];
int num,i;
cout<<"输入数组成员个数:";
cin>>num;
for(i=0;i<num;i++)
{
b[i]=(rand()%1000)-500;
}
cout<<"输出数组:"<<endl;
for(i=0;i<num;i++)
{
cout<<b[i]<<"\t";
}
cout<<endl;
for(i=0;i<(num-1);i++) //将环状数组转换为一维数组
{
b[num+i]=b[i];
}
int d[1000],st,en;
for(i=0;i<num;i++) //将一维数组转换为n个最大子数组
{
for(int j=0;j<num;j++)
{
d[j]=b[i+j];
max[i]=Maxsum(d,num);
}
}
int maxm=max[0];//比较n个最大子数组的最大子数组的最大值
for(i=0;i<num;i++)
{
if( maxm>max[i])
{
maxm=max[i];
}
}
cout<<"最大子数组和为:"<<maxm<<endl;
return 0;
}
按要求随机产生几个数,然后先求数组的最大子数组的最大值,然后再比较他们的最大值求出整个子数组的最大子数组和
丁官甲:程序编码和思路讨论 吴论:思路讨论,代码编程后的测试和审核
二、实验代码
#include<iostream.h>
#include<stdlib.h>
int Maxsum(int *a,int n)//一维数组的求最大
{
int tempstart =0,sum=0,max=-1000;
int i;
int start,end;
start=end=0;
for(i=0;i<n;i++)
{
if(sum<0)
{
sum=a[i];
tempstart=i;
}
else
{
sum+=a[i];
}
if(sum>max)
{
max=sum;
start=tempstart;
end=i;
}
} //
cout<<"start="<<start<<endl<<"end="<<i<<endl;
return max;
}
int main()
{
int b[10000];
int max[10000];
int num,i;
cout<<"输入数组成员个数:";
cin>>num;
for(i=0;i<num;i++)
{
b[i]=(rand()%1000)-500;
}
cout<<"输出数组:"<<endl;
for(i=0;i<num;i++)
{
cout<<b[i]<<"\t";
}
cout<<endl;
for(i=0;i<(num-1);i++) //将环状数组转换为一维数组
{
b[num+i]=b[i];
}
int d[1000],st,en;
for(i=0;i<num;i++) //将一维数组转换为n个最大子数组
{
for(int j=0;j<num;j++)
{
d[j]=b[i+j];
max[i]=Maxsum(d,num);
}
}
int maxm=max[0];//比较n个最大子数组的最大子数组的最大值
for(i=0;i<num;i++)
{
if( maxm>max[i])
{
maxm=max[i];
}
}
cout<<"最大子数组和为:"<<maxm<<endl;
return 0;
}
相关文章推荐
- 正则表达式贪婪与非贪婪模式
- 基于Maven项目SpringMVC的基本配置
- SQL(MSSQLSERVER)服务启动错误代码3414的解决方法
- 字符设备驱动--定时器
- 按位&,| 与 iOS 中二进制数赋值的枚举之间的关系
- OpenCV模块分类
- 利用桥接模式实现手机品牌和手机软件之间的解耦 C++
- T-SQL, Part I: LIKE Pattern
- JavaScript提交表单时检查所填是否有效
- OpenCV模块分类
- 网狐6603 cocos2dx 棋牌、捕鱼、休闲类游戏《李逵捕鱼》手机端完整源码分析及分享
- .net框架下~机器学习
- 安卓学习笔记之实现通用的适配器(adapter)与ViewHolder
- window下安装scipy并检查
- _WIN32_WINNT not defined错误 解决办法
- error C2504 base class undefined
- Unity3d-NGUI-十六进制颜色转换
- 第57课:SparkSQL案例实战学习笔记
- 【新姿势】内存泄漏,内存溢出,静态Handler类
- Echarts.js遇见的问题(tooltip)