Unk*_*own 13 algorithm hashtable ternary-search-tree
我在回答另一个问题时遇到了这个问题,有人说三元树通常比哈希表更快.我发现很难相信,所以我决定研究一下.
普林斯顿的这个网站似乎是信仰的源泉.我看了一下算法,它被描述为O(log n + k),其中n是存储的字数,k是密钥的长度.
在我看来,如果你经常搜索尚未存储的元素,那么唯一的方法就是更快.困扰我的另一件事是,trie的非连续爬行会导致你击中已被换掉的页面,但这是否是一个主要影响只能通过基准来看.
现在我知道两者都有利有弊,如果是的话,我想知道它们是什么.基准测试也很有帮助.
以下是我从Dr. Prince Dobbs文章中收集的内容,您可以从普林斯顿链接获得:
这对我来说也很有趣。但从我读到的维基百科来看,它声称三叉树在大多数搜索问题上速度更快。这并不奇怪,因为即使哈希表具有 O(1) 查找,您仍然需要时间进行哈希处理。所以它并不是真正的 O(1),而是更像 O(k),其中 k 不依赖于 N(数据结构中的项数)。这可能给人的印象是哈希表更快。然而,如果您处理的是大型结构,k 会快速增加,并且哈希表的搜索速度会变得比三叉树慢。
| 归档时间: |
|
| 查看次数: |
4143 次 |
| 最近记录: |