时间复杂度的可加性?

Additivity of time complexity?

我目前正在为学校做一个项目,我在这个项目中有时间复杂度限制。我还在开始学习编程,所以对这个问题的道歉是愚蠢的。

本质上,假设我有一个约束,即我的程序必须满足时间复杂度 O(n^2 + mlogm),其中 n 和 m 是输入的一些大小。这是否意味着这是我程序的任何特定组件可以 运行 的最大时间复杂度?也就是说,如果我有很多 O(n^2 + m) 函数,但是 O(n^2 + mlogm) 中最复杂的函数 运行s,我是否仍然满足这个时间限制?例如,如果我的程序 运行 按顺序

执行以下功能

函数A

功能B

函数C

函数D

而函数A、B、C都是O(n^2 + m)或者小于时间复杂度限制的东西,但是最后一个函数是O(n^2 + mlogm),我的程序会不会在时间限制?总的复杂度会不会是 O(n^2 + m ^ n^2 + m ^ n^2 + m + n^2 + mlogm)?

我仍在学习时间复杂度,因此非常感谢对此的任何帮助。非常感谢。

如果您按顺序执行不同的函数,您只需选择最差的复杂度,这就是整体复杂度。

例如,如果 fnAO(n)fnBO(<sup>n<sup>n!</sup></sup>),那么 fnA 的任何影响都会被 fnB 完全 淹没 ,假设它们是 运行顺序(不嵌套)。

你的情况,你的函数final满足要求,前三个更好,所以整体复杂度是final的。