成对求和的运行时复杂度是多少?

时间:2019-03-29 14:19:15

标签: python algorithm numpy data-structures big-o

我读到numpy uses pairwise summation是其计算总和的默认算法(也由numpy github存储库中的pull request之一确认)

因此,对于以下代码段和一般代码段:

data = np.ones((1000,1000))
sum = np.sum(data)

print(sum)

成对求和的运行时复杂度是多少?由于它遵循类似于divide and conquer的贪婪方法,因此它必须在log范围内,但是我不确定确切的方程式。

1 个答案:

答案 0 :(得分:2)

按对求和与单纯求和的次数完全相同。

但是,如果要累加浮点数,那么天真的求和运算最终会在末尾将小数加到大数上。这将导致末端附近的数字遭受更大的舍入误差。

因此,首选成对求和。