2013-07-30 39 views
3

我听说有关为二元搜索添加额外要求(例如)的情况可称为增强的情况。扩增在计算机科学中意味着什么?

被认为是增强算法的复杂性是否有所增加?

感谢

+0

也许这个问题应该迁移到http://programmers.stackexchange.com?这是一个非常有用的问题,因为在任何地方似乎都没有明确的增强定义,并且在搜索谷歌搜索'[增强计算机科学]时出现此问题(https://www.google.com/search?q=增强+电脑+科学)' – icc97

回答

3

扩充通常意味着扩展名称。在计算机科学中,有许多根本性的,经过深入研究的概念,算法或数据结构。这些概念对解决许多实际问题至关重要,但有时您必须为主要思想添加一些附加功能。

让我们假设你想要用标准插入/删除来管理一组数字,此外,你想有效地计算集合中小于给定数字k的项目数量。

为了做到这一点,您可以实现一个标准(平衡)二叉搜索树,此外,在每个节点中存储该节点的左子树中的节点数量(表示较小项目的数量)并在插入/删除过程中跟踪该计数器。然后如果你想返回小于k的项目数,你只需在树中找到k,然后返回k的计数器。这是一个增强。

+0

'增强'被解释为我'加强'看到这个[评论](http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if -i-have-a-jquery-background/15012542?noredirect = 1#comment29088343_15012542) – icc97

+0

@ icc97是的,但我认为'extension'是一个更合适的词 – pkacprzak

1

我不会限制增加了复杂性,但每除了东西(如Augumented Realtity)可以被称为“增强”。我从来没有在计算机科学中看到任何明确的“扩充”定义,我怀疑是否有这样的定义。