我创建了一些不同大小的矩阵,并将每个矩阵保存在csv格式的单独文件中,格式为
row,column,value.
生成矩阵的代码如下
Random rng = new Random();
for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < colCount; j++) {
Integer next = rng.nextInt(5) + 1;
bw1.write(i + "," + j + "," + next);
}
}
现在,当我测试矩阵的基数越来越高时,我得到了一些奇怪的结果。有时,我增加矩阵的大小,而不是增加持续时间,而不是花费更少的时间。结果如下
(8192x8192)x(8192x8192) --- 254 sec.
(8193x8194)x(8194x8193) --- 190 sec.
(16382x16383)x(16383x16382) --- 1110 sec.
(16384x16384)x(16384x16384) --- 1619 sec.
(16385x16386)x(16386x16385) --- 1038 sec.
我已检查过源代码,但未能确定原因。
谁能告诉我为什么它会像这样?
提前致谢