【问题标题】:Trie based addressbook and efficient search by name and contact number基于 Trie 的地址簿和按姓名和联系电话进行高效搜索
【发布时间】:2011-08-04 06:28:25
【问题描述】:

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

【问题讨论】:

  • 数字只是数字字符的字符串,或者至少没有什么能阻止你这样表示它们。我想不出一种数据类型不可能或低效地表示为对于这个特定应用程序的字符串。您可能无法有效地将图片表示为字符串,或者使用 trie 搜索它们,但这不是您典型的地址簿搜索。

标签: algorithm search data-structures addressbook


【解决方案1】:

这是一个奇怪的问题,也许您应该添加更多信息,但您可以使用 trie 数据结构,不仅可以用于字符串,还可以用于许多其他数据类型。 trie的定义是用相邻的树模型做一个字典。我知道一个类似于 trie 并使用二叉​​树模型的 kart-trie。所以它是相同的数据结构,但具有不同的树模型。 kart-trie 使用巧妙的密钥交替算法将 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多