编译C++的时候要求输入两个动态矩阵:
P[J][N][J][N][K]
Q[J][N][J][N]
其中J=1000;N=30;
程序中需要处理这两个动态矩阵间的运算,但是在调试的时候内存占用量过大,用windos的任务管理器查看,占用了1,221,5880k,导致程序运行不下去,请问有什么解决办法?
请问有增加时间复杂度的存储例子么,这么看的话不是太明白怎么处理。存在多个硬盘文件里是什么意思?
追答关于存储,可以参考外部排序 http://baike.baidu.com/link?url=iXQTU07CLMCGrKeZX9PiF0s5bTjYvnfEB2IGCr6dLVvr-yhPChTyGEENmuWYAds-1NE8T8QDkj03ezaLfZarKK
矩阵里很多计算是平行的。
比如乘法时,结果矩阵中的一项并不依赖于两个参与乘法的矩阵的每一项,而只是一行、一列。极端点来说,这样就可以每次只把一行一列读入内存,算出结果,存到硬盘上,再读入新的一行,一列。每一行,每一列都可以存成一个文件。(当然,这样太碎了,你可以考虑存更大的子矩阵)