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

标签 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)

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

最佳答案

成对求和执行与朴素求和完全相同的加法次数。

但是,如果您要将 float 相加,那么简单的求和最终会在末尾附近将小数与大数相加。这会导致接近末尾的数字遭受更大的舍入误差。

因此,首选成对求和。

关于python - 成对求和的运行时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55419430/

相关文章:

java - 如何在循环链表中找到最大子序列和

python - 使用加权多点定位寻找未知点

python - NumPy:以编程方式修改结构化数组的 dtype

python - python中输入过大如何处理?

python - 错误 : OpenCV(4. 1.0) 错误 : (-215:Assertion failed) ! ssize.empty() 函数 'cv::resize'

java - 具有前 N 个解决方案的遗传算法

python - NumPy - 这可以向量化吗?

python - 数字是其数字总和的幂 Codewars

python - 使用 pdfminer.6 从每个 PDF 页面中提取文本

algorithm - 通过按位或生成想要的数字