algorithm - 如何找出 "Big theta"表示法中的常量

标签 algorithm time-complexity

我正在解决“big theta”符号的问题。我知道大 O 表示最坏情况,大 omega 表示最好情况。我也知道我们必须为大 theta 符号找到两个常数 c1 和 c2。我的问题是如何找出常数(c)的值大西塔。

最佳答案

给定函数的 Theta 包围,例如

f(n) = Θ(g(n))

相当于证明极限

lim(n->∞) f(n) / g(n)

存在*。

您可以通过对函数 f 的渐近行为进行有根据的猜测来完成此操作。

然后极限理论告诉你,存在一些 N

n > N => |f(n) / g(n) - C| < ε,

可以写

n > N => C - ε < f(n) / g(n) < C + ε

n > N => C1.g(n) < f(n) < C2.g(n).

这就是常量C1C2的来源。其实这一切都是极限计算的实践。


*从技术上讲,下限和上限可能不同,您将执行两种不同的计算。

关于algorithm - 如何找出 "Big theta"表示法中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820817/

相关文章:

java - 如何获取通用树中节点的级别?

在处理器上调度作业的算法

JAVA - 围棋游戏算法

Python大整数性能

javascript - 在 JavaScript 中使用对象作为字典的时间复杂度

java - 我如何创建一个递归的 Anagram 工具来打印一串字母的所有可能组合,包括前缀?

algorithm - Racket 中的随机树

algorithm - 当等式右侧有多个循环函数调用时,求解循环关系的方法是什么?

c++ - C++ 中复杂度为 O(1) 的单链表操作

java - 简单java代码的时间复杂度