连续执行的时间复杂度

时间:2017-05-05 22:15:56

标签: algorithm time-complexity

我有3种算法(A1,A2和A3),它们的估计时间复杂度分别为O(n Log n)O(K n)O(Q n),其中K和Q是动作的不同参数。然后我有第四个算法连续运行这3个算法(每个算法都需要前面的结果)。

我对如何估计算法套件的总复杂性感到困惑。据我所知,O(n Log n)的增长速度比O(K n)O(Q n)快,因此时间消耗方面最重要的部分是A1,这可能是最相关的行为。一个n足够大。但这并不能反映出即使在A1完成后,A2和A3仍需要很长时间。

所以我想知道,我该如何解释?仅仅说复杂性是O(n Log n)就足够了吗?

1 个答案:

答案 0 :(得分:3)

总时间复杂度为:

  

O(n Log n)+ O(K n)+ O(Q n)

如果假设KQ是比Log n增长慢或类似的参数,则总时间复杂度为:

  

O(n Log n)

因为我们使用的是大写符号。否则,总时间复杂度是初始总和(或部分)。

这个想法是在n增长时保持支配其他术语的术语。