关于算法的运行时间,“〜”符号是什么意思?

时间:2013-05-06 23:26:26

标签: algorithm sorting

我看到很多东西,比如~N ^ 2或~N,但我真的不知道“〜”是什么意思。

2 个答案:

答案 0 :(得分:5)

表达式前面的波浪号(〜)通常用于表示大约或大致相等。我认为这很可能是你遇到的意思。

答案 1 :(得分:1)

~ means asymptotically equal to

在(希望)更易理解的术语中,它大致意味着包含常数因素的主导词(与Big-O表示法相反,其中常数因素不会发挥作用角色)。

或者更常见的是f(n) ~ g(n)当且仅当f(n)g(n)具有相同的主导词(包括常数因子)时。{/ p>

主导词是n - >的最大术语。 ∞。

一些例子可以更好地解释它:

5n^2 + 10n + 15 ~ 5n^2

I haven't really seen this used, but also valid:
5n^2 + 10n + 15 ~ 5n^2 + 22n + 7

Not valid:
5n^2 + 10n + 15 ~ n^2

与Big-O表示法相比,你可以用任何东西替换5,而Big-O只是一个上限,所以你可以使用任何渐近更大的术语:

5n^2 + 10n + 15 ∈ O(n^2)

The simplest, smallest representation, as above, is preferred, but also valid:
5n^2 + 10n + 15 ∈ O(999999n^2)
5n^2 + 10n + 15 ∈ O(458279n^2 + 3289n + 77)
5n^2 + 10n + 15 ∈ O(n^3)

Not valid:
5n^2 + 10n + 15 ∈ O(999999n)