返回一个整数数组中最大子数组的和之测试
2015-03-30 19:35
127 查看
题目:返回一个整数数组中最大子数组的和。
要求:
要求程序必须能处理1000 个元素;
每个元素是int32 类型的;
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
思路:
考虑到手动输入1000个元素所以在程序中由系统随机出1000个元素进行测试。代码与之前的代码差别不大。
程序代码:
程序截图:
![](http://images.cnitblog.com/blog2015/726728/201503/301933153426069.png)
![](http://images.cnitblog.com/blog2015/726728/201503/301933293267131.png)
对代码溢出的测试:
将
修改为
程序截图:
![](http://images.cnitblog.com/blog2015/726728/201503/301934408429348.png)
感想:
2^31-1=2147483647, 代码的溢出范围为-2^31~2^31之间,超出即溢出。在程序的实现过程中,掌握了随机rand的使用方法,运用了调用函数,让程序变得“高大上”。但我们仍还有提升空间,让我们掌握更多的知识。
要求:
要求程序必须能处理1000 个元素;
每个元素是int32 类型的;
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
思路:
考虑到手动输入1000个元素所以在程序中由系统随机出1000个元素进行测试。代码与之前的代码差别不大。
程序代码:
#include <iostream.h> #include<stdlib.h> int maxSum(int* a, int n) { int sum=a[0]; int b=0; for(int i=0; i<n; i++) { if(b<0) //... b=a[i]; else b+=a[i]; if(sum<b) sum=b; } return sum; } int main() { int n; cout<<"请输入数组的元素个数: "<<endl; cin>>n; cout<<"请输入数组的元素: "<<endl; int *a=new int ; int x; for(int i=0;i<n;i++) { x=rand()-rand(); a[i]=x; cout<<a[i]<<" "; } cout<<endl; cout<<maxSum(a,n)<<endl; return 0; }
程序截图:
![](http://images.cnitblog.com/blog2015/726728/201503/301933153426069.png)
![](http://images.cnitblog.com/blog2015/726728/201503/301933293267131.png)
对代码溢出的测试:
将
int x; for(int i=0;i<n;i++) { x=rand()-rand(); a[i]=x; cout<<a[i]<<" "; }
修改为
for(int i=0;i<n;i++) { cin>>a[i]; }
程序截图:
![](http://images.cnitblog.com/blog2015/726728/201503/301934408429348.png)
感想:
2^31-1=2147483647, 代码的溢出范围为-2^31~2^31之间,超出即溢出。在程序的实现过程中,掌握了随机rand的使用方法,运用了调用函数,让程序变得“高大上”。但我们仍还有提升空间,让我们掌握更多的知识。
相关文章推荐
- 返回一个整数数组中最大子数组的和之测试
- 结对开发之返回一个整数数组中最大子数组的和
- 课堂练习之结对开发项目思想总结:返回一个整数数组中最大子数组的和
- 返回一个整数数组中最大子数组的和-课堂训练(子数组为连续)
- 返回一个整数数组中最大子数组的和
- 寻找一个整数数组中最大值。(测试程序)
- 3月17号周二课堂练习:结对开发----返回一个整数数组中最大子数组的和一
- 题目:返回一个整数数组中最大子数组的和。
- 返回一个整数数组中最大子数组的和2
- 3月24号周二课堂练习:结对开发----返回一个整数数组中最大子数组的和二
- 返回一个整数数组中最大子数组的和
- 题目:返回一个整数数组中最大子数组的和
- 返回一个整数数组中最大子数组的和
- 简单编程(十四)定义一个方法能够判断并返回两个整数的最大值,并调用自己的方法测试是否正确。
- 题目:返回一个整数数组中最大子数组的和。(要求程序必须能处理1000 个元素)
- 结对开发——返回一个整数数组中最大子数组的和
- 题目:给一个排序好的整数数组A,请写一个函数,输入是数组A和一个整数x,返回数组A中值小于x的最大元素的索引值
- 课堂练习四: 返回一个整数数组中最大子数组的和。
- 结对开发之《返回一个整数数组中最大子数组的和》
- 返回一个整数数组中最大子数组的和