【发布时间】:2010-12-06 21:11:28
【问题描述】:
对于二叉搜索树类型的数据结构,我看到大 O 表示法通常记为 O(logn)。在 log 中使用小写的“l”,这是否意味着自然对数所描述的 log 底 e (n)?很抱歉这个简单的问题,但我一直无法区分不同的隐含对数。
【问题讨论】:
-
正如其他人中肯地指出的那样,这并不重要。所有对数的差异仅取决于所涉及的基数。因为这些因素是常数,所以它们与渐近分析的目的无关。其次,就确定隐含基础而言,它取决于上下文。作为粗略的经验法则,请使用以下规则: 1. 当数学家写
log n时,他的意思是自然对数。 2. 当计算机科学家写log n时,他的意思是base-2。 3. 当工程师写log n时,他的意思是十进制。这些通常是正确的。 -
@Jason,另一个约定(在数学中)是 ln n 表示自然对数,log n 是以十为底的。 Think ln 代表法语“自然对数”。
-
对数的底是每个节点的子节点数。如果它是一棵二叉树,那么它就是一个基数为 2 的日志。
-
感谢您的回答,Jason,这里有一些事情需要考虑。当我研究了日志的基数(我假设为 2)时,我看到了相同的答案:没关系,因为您可以消除常数 log_10(2)。我的问题是,例如:5 log_10(5) 5。我在计算中快速输入这些以帮助概念化 O(n logn) 的运行时间比 O 更好或更差(n)。根据基础,它确实很重要。因此,我真的认为这个问题的正确答案应该是在大多数计算机科学应用程序中,日志在上下文中意味着基数 2。
-
@jason,我想说使用 ln (数学家的解释)更容易;)。其他两个例子是合理的。
标签: math binary-tree complexity-theory big-o