一,題目:
求乙個矩陣中最大的
二維矩陣
(元素和最大).如
:1 2 0 3 4
2 3 4 5 1
1 1 5 3 0
中最大的是
:4 5
5 3要求
:(1)
寫出演算法
;(2)
分析時間複雜度
;(3)用c
寫出關鍵**
二,分析:
假設最大子矩陣的結果為從第r行到
k行、從第i列到
j列的子矩陣,
如下所示
(ari
表示a[r][i],
假設陣列下標從1開始
):| a11 …… a1i ……a1j ……a1n |
| a21 …… a2i ……a2j ……a2n |
.....
| ar1 …… ari ……arj ……arn | 第r
行. . .
.......... |
v| ak1 …… aki ……akj ……akn | 第k
行. . .
.....
| an1 …… ani ……anj ……ann |
那麼我們將從第
r行到第
k行的每一行中相同列的加起來,可以得到乙個一維陣列如下:
(ar1+……+ak1, ar2+……+ak2, ……,arn+……+akn)
由此我們可以看出最後所求的就是此一維陣列的最大子段和問題,
到此我們已經將問題轉化為上面的已經解決了的問題了。
三,原始碼(以下原始碼是求n行n列矩陣最大子矩陣**)
#include using namespace std;
int maxsubarray(int a,int n)
return sum;
}int maxsubmatrix(int array[3],int n)}}
return sum;
}int main()
,,};
cout<<"maxsum: "<
求乙個矩陣中最大的二維矩陣 元素和最大
35.矩陣 求乙個矩陣中最大的二維矩陣 元素和最大 如 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是 4 55 3 要求 1 寫出演算法 2 分析時間複雜度 3 用c寫出關鍵 遍歷每個二維矩陣,記錄和最大的index。時間複雜度o m n coder lee,2012032...
求乙個矩陣中最大的二維矩陣 元素和最大
求乙個矩陣中最大的二維矩陣 元素和最大 如 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是 4 55 3 要求 1 寫出演算法 2 分析時間複雜度 3 用c寫出關鍵 public class maxsubmatrix int b int result msm.findsumm...
35 求乙個矩陣中最大的二維矩陣
求1個矩陣中最大的二維矩陣 1。單就這一題來說,首先方法就是遍歷 include using namespace std int a 5 int m 3 int n 5 void max matrix void cout 矩陣是 1 1 s 1 s 1 int main void 還有1種情況,給定...