algorithm - 基于 Trie 的地址簿和按姓名和联系电话高效搜索

标签 algorithm search data-structures addressbook

这是一种基于 trie 数据结构开发地址簿的已知方法。它是一种高效的字符串数据结构。假设如果我们想基于姓名、号码等为地址簿创建一个高效的搜索机制,那么什么是有效的数据结构来实现基于任何类型的搜索词的内存高效和更快的搜索,而不考虑数据类型?

最佳答案

这是一个奇怪的问题,也许您应该添加更多信息,但您不仅可以将 trie 数据结构用于字符串,还可以用于许多其他数据类型。 trie 的定义是用相邻的树模型制作字典。我知道一种类似于 trie 的 kart-trie,它使用二叉树模型。所以它是相同的数据结构,但具有不同的树模型。 kart-trie 使用巧妙的 key 交替算法将 trie 数据结构隐藏在二叉树中。它不是 patricia trie 或 radix-trie。

  1. Good algorithm for managing configuration trees with wildcards?
  2. http://code.dogmap.org/kart/

但我认为三叉树也可以做同样的事情:

  1. http://en.wikipedia.org/wiki/Ternary_search_tree
  2. http://igoro.com/archive/efficient-auto-complete-with-a-ternary-search-tree/

关于algorithm - 基于 Trie 的地址簿和按姓名和联系电话高效搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6937059/

相关文章:

python - 在数据库中搜索结构化数据(全文+查询)

data-structures - Redis - 排序字典

elasticsearch - ElasticSearch vs SQL查询小型数据库?

r - 为什么 r 中关于生成 Gamma 随机变量的代码没有返回预期的输出?

algorithm - 使用 Map/Reduce 从多个 Sets 创建 Map

algorithm - 是否有任何采用 7 字节 key 的 DES 库或代码?

SQL函数来计算字符串在列中出现的次数?

java - HashTable 中的搜索功能

algorithm - 为什么我们需要检测链表中的循环

algorithm - 具有二进制偏好的简单配对匹配算法