【发布时间】:2017-09-15 00:37:57
【问题描述】:
我正在学习 Big-O 表示法并正在处理一项我一直坚持的任务。基本上,我被赋予了不同的功能,并且必须为它们编写 Big(O)。我认为我的困惑在于 Big-O 中可以包含哪些功能。我对层次结构的理解如下: O(1) O(登录) 上) O(nlogn) O(n^2) O(2^n) O(n!)
我也理解为什么省略了常量和更小的术语,因为我们只是在寻找一个界限。我的问题是当一个函数没有用这些术语编写时会发生什么。例如(这不是我的确切问题,但类似),3^n 不是 2^n 的常数倍数。 Big-O 是 O(3^n) 还是 O(2^n)?我的想法是 O(3^n),因为 3^n 的增长速度比 2^n 快,而且大 O 是一个上限。但我还没有看到 Big O 用不是上面列出的 2 或 n 的基数表示。这是正确的想法吗?
【问题讨论】:
-
所有函数都可以使用 Big-O 表示法。您列举的函数只是最常见的函数。
标签: algorithm time-complexity big-o asymptotic-complexity