求二維矩陣和最大的子矩陣

2022-08-03 20:24:17 字數 2254 閱讀 9209

一、題目

求二維矩陣中和最大的子矩陣。

二、設計思路

將二維陣列轉化為一維陣列,在運用一維陣列求最大子陣列方法求出。c[0]=a[0];c[1]=a[0]+a[1];依次往下。

將二維陣列存到txt檔案中。

三、源**

1 #include2 #include3

void writefile(int a[20],int length,int row)//

檔案寫入

413 outfile<

15outfile.close();16}

17int max1(int a,int

n);18

int column(int a[20],int length,int num1) //

求最大和19;

27for(int j=0;j)

2836 p=p+1;37

}38for(int o=0;o<100;o++)

3942}43

for(int l=0;l)

4451 e[y++]=max1(d,length);

52//

cout<53}54

int max=e[0

];55

for(int i=0;i)

5661}62

return

max;63}

64int max1(int a,int n) //

球一維最大和

6586}87

if(u==1)88

100else

101105

}106

else

107112

else

113116

}117

118}

119else

if(a[i]<0

)120

127else

128132

}133

else

134139

else

140143

}144

}145

}146 m=j;

147if(b[0]<0

)148

151else

152155

//對陣列b進行操作,將利用演算法求的機最大值存入陣列c中

156for(int y=j;y2

)157

169}

170else

171174

}175

else

176179

180}

181//

對陣列c求最大值

182 max=c[0

];183

for(i=0;i)

184189

}190

return

max;

191}

192else

193201

}202

return

max;

203}

204}

205int

main()

206224

}225

writefile(a,length,index);

226227

int s=column(a,length,index);

228 cout<

最大和為:

"229return0;

230 }

四、截圖

五、實驗總結

本次實驗在檔案寫入方面,我與他找了些許資料。最終解決了。在思路方面,我們想延用以為陣列的方法,但是對於我想象不到如何二維陣列怎麼使用,但是他提出我們把所有的都列舉出來吧。頓時想到轉化為一維陣列的方法,運用到了程式裡。乙個人的思維總是有限的,只有思想的碰撞,往往才有更多的激發。

六、我們的合照

求乙個矩陣中最大的二維矩陣 元素和最大

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...

求乙個矩陣中最大的二維矩陣 元素和最大

一,題目 求乙個矩陣中最大的 二維矩陣 元素和最大 如 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 表...