二维数组求最大矩阵
2015-04-09 21:01
106 查看
在上次一维数组求最大子数组的和之后我又做了这次的二维数组最大矩阵之和,代码如下
#include<iostream.h>
static int max;
void qiongju(int juzhen[][4],int ai,int aj,int m,int n)
{
int linshi;
for(int i=ai;i<m;i++)
{
for(int j=aj;j<n;j++)
{
linshi=0;
for(int i1=ai;i1<=i;i1++)
{
for(int j1=aj;j1<=j;j1++)
{
linshi=linshi+juzhen[i1][j1];
}
}
// cout《linshi《endl;
if(linshi>max)
{
max=linshi;
}
}
}
}
void main()
{
int juzhen[3][4]={{1,4,-6,5},{-6,7,-9,2},{6,4,2,-4}};
for(int si=0;si<3;si++) //输出矩阵
{
for(int sj=0;sj<4;sj++)
{
cout《juzhen[si][sj]《" ";
}
cout《endl;
}
max=juzhen[0][0];
for(int i=0;i<3;i++) //对每一个值作为子矩阵第一个值分别求和
{
for(int j=0;j<4;j++)
{
qiongju(juzhen,i,j,3,4);
}
}
cout《"最大子矩阵和为:"《max《endl;
思路:
这段程序我实在网上找到的,利用的穷举法,也可以是压榨法,就是把这个矩阵压缩成一个长方形,宽为一,然后在向其他列扩展,之和加起来在比较。
此次是团队开发,我负责编辑程序。
合伙人:郎国杰
}
#include<iostream.h>
static int max;
void qiongju(int juzhen[][4],int ai,int aj,int m,int n)
{
int linshi;
for(int i=ai;i<m;i++)
{
for(int j=aj;j<n;j++)
{
linshi=0;
for(int i1=ai;i1<=i;i1++)
{
for(int j1=aj;j1<=j;j1++)
{
linshi=linshi+juzhen[i1][j1];
}
}
// cout《linshi《endl;
if(linshi>max)
{
max=linshi;
}
}
}
}
void main()
{
int juzhen[3][4]={{1,4,-6,5},{-6,7,-9,2},{6,4,2,-4}};
for(int si=0;si<3;si++) //输出矩阵
{
for(int sj=0;sj<4;sj++)
{
cout《juzhen[si][sj]《" ";
}
cout《endl;
}
max=juzhen[0][0];
for(int i=0;i<3;i++) //对每一个值作为子矩阵第一个值分别求和
{
for(int j=0;j<4;j++)
{
qiongju(juzhen,i,j,3,4);
}
}
cout《"最大子矩阵和为:"《max《endl;
思路:
这段程序我实在网上找到的,利用的穷举法,也可以是压榨法,就是把这个矩阵压缩成一个长方形,宽为一,然后在向其他列扩展,之和加起来在比较。
此次是团队开发,我负责编辑程序。
合伙人:郎国杰
}
相关文章推荐
- 求一个二维数组的最大子矩阵的和(令矩阵的行首尾相接为环)
- 求二维数组最大子数组和(或矩阵的最大子矩阵和)
- 结对编程之返回一个二维数组中所有子矩阵和的最大值
- poj1050 二维数组最大子序列矩阵和
- 利用二维数组存储一个3行4列的单位矩阵,并输出最大值和最小值
- 3月31号周二课堂练习:结对开发----求二维数组组成的矩阵中子矩阵的最大值二
- 用二维数组名作形参、实参,求3行4列矩阵中的最大值
- 二维数组;求一个3×4的矩阵中最大的那个元素的值,及其所在的行号和列号
- 用二维数组名作形参、实参,求3行4列矩阵中的最大值(二)
- 二维数组求最大矩阵
- 最大子矩阵:二维数组的最大连续子数组和
- poj1050 二维数组最大子序列矩阵和
- 求二维数组组成的矩阵中子矩阵的最大值
- 二维数组返回最大子矩阵之和
- poj1050 动态规划 求二维数组中子矩阵和的最大值
- 返回一个二维数组最大矩阵的和
- 3月20号周五课堂练习:结对开发----求二维数组组成的矩阵中子矩阵的最大值
- 有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
- Matlab中几种关于如何求矩阵最大值并返回其行列号的方法
- Poj1050_To the Max(二维数组最大字段和)