我有一个手的二进制图像(大小:100x100),我们可以表示为仅由0或1值组成的矩阵。这是一个例子:
假设我有一个double
数组代表线性化图像,我们称之为image
,我需要执行以下操作:
double accumulator = 0;
for (int j = 0; j < image.Length; ++j)
{
accumulator += image[j] * weights[j];
}
换句话说,我需要计算image
数组的每个像素的加权和。 weights
表示包含double
值的数组,用于对图像的每个像素进行加权。
以下代码是否比上一代码更有效?
double accumulator = 0;
for (int j = 0; j < image.Length; ++j)
{
if (image[j] != 0)
{
accumulator += image[j] * weights[j];
}
}
答案 0 :(得分:4)
答案是 - 在这个时刻你真的不需要担心这个问题。如果您的代码运行太慢,那么您可以尝试一些优化。然而,“太慢”是主观的。
过早优化是所有邪恶的根源。
正如angelatlarge指出的那样,目前 - 使用易于阅读且易于维护的内容。