这些函数在 Big-O 中的确切运行时间是多少

What is the exact runtime in Big-O of those functions

我想问一下是否有人可以回答这个问题并检查我的解决方案。我不太了解这些功能的大 O。

e(n)= n! + 2^n

f(n)= log10(n) * n/2 + n

g(n) = n2 + n * log(n)

h(n) = 2^30n * 4^log2(n)

我认为:

e(n)n!因为 n!呈指数增长。

f(n) n(log)n 但我真的不知道为什么

g(n) n^2

h(n) n

如有任何答复,我将不胜感激。谢谢。

Big O 表示法允许我们评估函数在趋于无穷大时相对于某个量的增长。

函数的大 O 表示法是它增长最快的组成部分的表示法。大 O 符号限制函数的增长。

例如,如果一个函数被称为 O(n)。 存在一些 k 使得 f(n) <= k * n 对于所有 n.

当我们查看趋于无穷大的值时,我们忽略了等式的所有其他成分。随着 n 趋于无穷大,等式的其他成分被淹没了。

我们忽略任何常量,因为我们正在描述函数趋于某个值的一般关系。常数使事情更难分析。

  1. e(n) = n! + 2^n。阶乘是等式中增长最快的成分,因此大 O 表示法是 O(n!)。

  2. f(n) = log10(n) * n/2 + n。快速增长的成分是 log10(n) * n/2。我们说大 O 表示法是 O(nlogn)。我们使用什么基数并不重要,因为我们可以使用常数因子在对数基数之间进行转换。

  3. g(n) = n^2 + n * log(n)。大 O 表示法是 n^2。这是因为 n^2 相对于 n.

    的增长速度比 n * log(n) 快
  4. h(n) = (2^30) * n * 4 ^ log2(n)。时间复杂度为 O(nlogn)。这个等式中的常数是 2^30 和 4,所以我们忽略这些值。这样做时你可以清楚地看到时间复杂度是 O(nlogn).