在大O或Omega符号表示法中,变量'C'代表什么?

3
在大O或Omega符号中,我知道n是指程序的输入。但变量C是什么意思?

请问您能给出上下文吗?您在哪里看到了C?它是如何被使用的? - Some programmer dude
我正在学习关于Big O符号的相关材料时,发现了下面这段代码:**f(n) = c g(n)**,其中n为程序的输入。 - javapsy
1个回答

2

虽然不知道你在哪里看到了大 O 表示法中的 C,但我猜它被用来表示某种常数。

例如,你可以在将使用 Big-O 表示法的语句翻译为使用谓词逻辑术语的语句时使用 C

f(x) = O(g(x)) 的意思是:

存在正实数 Cx0,使得对于所有 x >= x0,都有 f(x) <= C * g(x)

这里使用 C 作为常数倍数的名称完全是任意的。 C 可能之所以流行,仅仅因为它是 "constant" 的第一个字母。最多,这只是一种惯例。

你可以使用其他字母,其意义是相同的。维基百科页面(我撰写本文时)在大多数方程中使用M(尽管C在页面下方的一些方程中也出现)。很可能你在某个大O符号的描述中看到了C,但随后又阅读了其他不使用C的描述。

那么我可以假定常量'C'代表着常数操作的数量,比如给变量加值。 - javapsy
1
不,C 没有实际意义;它是任意的。通常许多不同的 C 值都可以工作。大 O 表示法的重点在于您不需要关心常数倍数。如果您需要精确计算操作次数,而不仅仅是渐近界限,则不应使用大 O 表示法。 - Blckknght

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接