二维数组的子数组求最大值问题
2014-03-19 14:14
120 查看
二维数组求最大值问题
——杨波 崔海营
经过几天对于整个算法的详细研究,我们发现之前提出的四种算法的猜想很大程度上是可以用代码来实现的,但是越是详细分析发现考虑的问题越深入,给我们也造成了相应的困难,所以决定当前用穷举法来完成这个程序的设计。不过在今后的学习中还会进一步的探讨之前所提出的几种猜想。其实编程的过程不仅仅是当前的,不也是长久的吗?随着知识的逐渐深入,编程水平的相应提升,相信现在的大困难,终将成为提升水平的垫脚石。
下面是我们用穷举法编的程序:
附录:时间记录日志(2014年)
——杨波 崔海营
经过几天对于整个算法的详细研究,我们发现之前提出的四种算法的猜想很大程度上是可以用代码来实现的,但是越是详细分析发现考虑的问题越深入,给我们也造成了相应的困难,所以决定当前用穷举法来完成这个程序的设计。不过在今后的学习中还会进一步的探讨之前所提出的几种猜想。其实编程的过程不仅仅是当前的,不也是长久的吗?随着知识的逐渐深入,编程水平的相应提升,相信现在的大困难,终将成为提升水平的垫脚石。
下面是我们用穷举法编的程序:
#include <iostream> using namespace std; typedef struct sq //定义一个矩阵的结构体 { int m1; int n1; int m2; int n2; }squre; int Sum1(int *array,squre c) //求得子矩阵中元素的和 { int i,j,sum=0; for(i=c.m1;i<=c.m2;i++) for(j=c.n1;j<=c.n2;j++) sum+=(*(array+i*100+j)); return sum; } int GetMax(int * array,int m,int n) //求取最大子矩阵的和 { int max,Sum; squre c ; for(c.m1=0;c.m1<m;c.m1++) for(c.n1=0;c.n1<n;c.n1++) for(c.m2=c.m1;c.m2<m;c.m2++) for(c.n2=c.n1;c.n2<n;c.n2++) { Sum=Sum1(array,c); if(max<Sum) { max=Sum; } } return max; } int main() { int m,n,array[100][100]={0}; cout<<"请输入二维数组的行数:"<<endl; cin>>m; cout<<"请输入二维数组的列数:"<<endl; cin>>n; cout<<"请输入二维数组的"<<m*n<<"个元素值:"<<endl; for(int i=0;i<m;i++) for(int j=0;j<n;j++) cin>>array[i][j]; cout<<"该二维数组中最大子数组的和为:"<<endl; cout<<GetMax(*array,m,n)<<endl; return 0; }
附录:时间记录日志(2014年)
工作人 | 时间 | 工作内容 |
杨波,崔海营 | 3.17 12:30-13:50 | 讨论方法设计 |
杨波 | 3.17 14:40-16:20 | 四种设计思想及发布 |
崔海营,杨波 | 3.19 13:15-14:24 | 讨论编码设计 |
崔海营 | 3.19 14:30-15:38 | 代码编写 |
杨波 | 3.19 15:40-16:20 | 代码编写 |
崔海营 | 3.19 16:30-17:15 | 博文编写 |
相关文章推荐
- 一维数组和二维数组的最大连续子数组问题
- 二维数组最大子数组溢出问题
- 体验结对开发的乐趣(5)--(首尾相连的二维数组求最大子数组和的问题)
- 二维数组, 二分法查找数组元素下标 快速查找数组最大值 数组作为实参的问题
- 二维数组最大子数组的和 结对开发 溢出问题
- Uva 507 - Jill Rides Again(最大子数组求和问题)
- 编程之美2.15 二维数组最大子数组的和(数组下标从(1,1)开始)
- 求二维数组的最大子数组———曹玉松&&蔡迎盈
- 二维数组求最大子数组和(环形)
- 51nod 1270 数组的最大代价 绝对值取极值问题
- 求子数组最大和问题
- 分治法解决寻找数组中最大最小值的问题
- 二维数组、字符数组、指针数组涉及字符串和具体元素问题
- 最大连续子数组问题
- 二维数组整型数组转置的问题
- 编程之美2.14扩展问题2 求数组的子数组之和的最大值并给出子数组的起始终止位置
- 最大字数组问题
- 子数组的最大累加和问题
- 软件工程课堂作业——二维数组最大联通子数组的和
- 二维数组中,值最大的连续子数组