algorithm - 大欧米茄和大西塔

标签 algorithm

f(n)=3n^2+2 这样的函数是 O(n^2) 因为 n^2 是函数中的最大指数。但是,函数 1f(n)= n^31 不是 O(n^2) 因为最大的指数是 3,而不是 2。

因此,为了对 Big Omega 或 Big Theta 做出这样的猜测,我们应该在函数中寻找什么?我们可以做一些类似于我们为上面的大 O 表示法所做的事情吗?

例如,假设问题要求我们找到函数 f(n)= 3n^2 +1 的 Big Omega 或 Big Theta。是 f(n)= O(n)Big Omega(n) 还是 Big Theta(n)?如果我要对这个函数是否是大 O(n) 进行有根据的猜测,我会说不是(因为函数的最大指数是 2,而不是 1)。我会使用归纳法更正式地证明这一点。

那么,我们可以做一些类似于我们在第一个示例中使用大 O 表示法所做的事情吗?我应该在函数中寻找什么来猜测 Big Omega 和 Theta 是什么,并确定“有根据的猜测”是否正确?

最佳答案

你的例子使用了多项式,所以我会假设。

  • 如果 k 大于或等于多项式的阶数,则您的多项式为 O(n^k)。

  • 如果 k 小于或等于多项式的阶数,则您的多项式为 Omega(n^k)。

  • 如果多项式是 O(n^k) 和 Omega(n^k),则它是 Theta(n^k)。

关于algorithm - 大欧米茄和大西塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47503526/

相关文章:

algorithm - Haskell 粒子模拟 - 计算粒子的速度

algorithm - 号码验证

algorithm - 用遗传算法挑选育种者

algorithm - 二郎 : Finding multiple Max values of a list

algorithm - 嵌套循环的大 O 表示法

algorithm - 打印硬币图案

Project Euler Q20 的 Java 算法

algorithm - 建议分析算法

用于测试扑克牌手牌的算法(4 到顺子)?

java - ArrayList<BigInteger> 排序算法 Java