📜  大 O 符号和波浪号之间的区别

📅  最后修改于: 2021-09-28 09:51:48             🧑  作者: Mango

在算法的渐近分析中,我们经常会遇到诸如 Big-Oh、Omega、Theta 和 Tilde 之类的术语,它们描述了算法的性能。
您可以参考以下链接以获取有关渐近分析的更多见解:

  1. 算法分析
  2. 不同的符号
  3. Big Oh、Big Omega 和 Big Theta 之间的区别

在本文中,我们将看到两种符号之间的区别: Big OhTilde。

1.大哦符号 (O) :
这种表示法基本上用于描述渐近上限。在数学上,我们可以将其描述为:

f(n) = O(g(n)) 
if there exist positive constants c and 
n0 such that 
0 <= f(n) <= c*g(n) 
for all n >= n0

上述符号描述了在点 n=n0 处,函数g(n) 的增长逐渐增加。在算法中,我们总是处理较大的 n 值,即 n→∞。因此,我们也可以将 Big-Oh 符号定义为:

例子 – n^2=O(n^3)

2. 波浪号 (~) :
当我们想要对复杂函数进行简单近似时,使用波浪号表示法。它只是删除低阶项。它由 ~g(n) 表示。
如果 f(n)~g(n) 表明 f(n)/g(n) 的值对于较大的 n 值趋向于 1。在数学上,我们可以将其表示为:

例子
1. (n-1/2)(n-1/3) = n^2-5/6n+1/6      可以写成~ n^2     因为当我们将两个函数相除并找到较大 n 值的极限时,它将变为 1。

2 –AVL 树中 在我们插入或删除一个键之前,我们首先比较并找到键的位置。最坏情况下所需的比较次数为:

h+1,其中h是树的高度。高度将是log_2n ,因为 AVL 树是高度平衡树。

因此,我们可以将表达式中 h 的值替换为:

log_2n+1

我们可以忽略低阶项,它变成~ log_2n     .因此,AVL 树中的比较次数近似为 ~ log_2n     .

渐近分析中关于 ~ 符号的一些要点 –

  • 它遵循等价关系属性。
  • 它与大 theta 表示法相同任意常数存在微小差异,因为在大 theta 符号中,下限和上限的常数可能有不同的值,但在波浪号的情况下,我们总是将 f/g 值设为 1 或趋向于1.

Big Oh 和 Tilde 符号之间的区别是:

S No- Big Oh (O) Tilde (~)
1 It generally defines the upper bound of an algorithm. Since it is similar to theta notation, it defines both the upper bound and lower bound of an algorithm.
2

The arbitrary constant incase of Big Oh notation is c which is greater than zero.

0 <= f(n) <= c*g(n) ; c>0, n>=n0

Here, the constant will always be 1 since on dividing f by g or g by f we always get 1. So, it gives a sharper approximation of an algorithm.
3.

If the time complexity of any algorithm is 

n^3/3-n^2+1     ,it  is given by O(n^3     ) and the constant is ignored.

Here, for the same time complexity it will be ~(n^3/3     ). This constant 1/3 is meaningless as in asymptotic analysis we are only interested to know about the growth of a function for a larger value of n.
4. It is mostly used in asymptotic analysis as we are always interested to know the upper bound of any algorithm. Big theta is mostly used instead of Tilde notation as in case of Big Theta we can have different arbitrary constants, c1 for upper bound and c2 for the lower bound.
5. It defines the worst case. It mostly defines the average case.