java - 用于矩阵平均值的高效数据结构

标签 java android data-structures

我有一个数组列表。

其值为

arrlist[0] = 1 2 3
arrlist[1] = 4 5 6
arrlist[2] = 7 8 9
arrlist[3] = 10 11 12
arrlist[4] = 13 14 15

我想要的是得到:1,4,7,10,13的平均值。然后是 2,5,8,11,14 的平均值,依此类推

生成的数组列表应仅包含一个字符串,如 7,8,9(所有 5 列的平均值)

编号是随机的。

这将是最有效的方式。 ??

我想到了一种方法,将每个元素存储在一个新的数组列表中,但循环会很大。

任何人都可以建议我一个有效的方法吗?

我的想法是:只是一个伪代码

arraylist newarrylist = new arraylist ();
for(int j=0;j<arrlist.size*arrlist[0].size;j++) // as each arrlist would have same elements
{    
newarrylist[j] =  arrlist(j).sunstring(j); // means will get the substring, first column, then second..
}

最佳答案

正如人们所说,过早的优化是万恶之源;当然,除非你的数组很大(例如 10000 行 * 10000 列)。

无论如何,计算平均值的选项并不多!

我要做的是这样的(将其更多地视为伪代码,我还没有调试它;另外,确保没有整数溢出):

int[] columnAverages = new int[width];

for (int row = 0; row < height; row++)
   for (int column = 0; column < width; column++)
   {
      int value = (parse the next integer here);
      columnAverages[column] += value;
   }

for (int column = 0; column < width; column++)
   columnAverages[column] /= height;

希望这有帮助

关于java - 用于矩阵平均值的高效数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002752/

相关文章:

java - @QueryParam 不解析 anchor 后的参数 ('#' )

java - 将二进制文件读入字符串

Android StreetView 检查给定位置是否有 View

android - 将 WebView 设置为查看桌面站点而不是移动站点

mysql - 多种页面类型相互连接的SQL数据库设计

java - 为盒子库存建立数据结构

java - 灵活的锁定替代方案(选择性锁定)

java - 2 秒后第二个线程

java - 改进 CoreNLP 词性标注器和 NER 标注器?

algorithm - 在没有额外空间的情况下,在 N 个排序数组中查找公共(public)元素