【问题标题】:Multi-key instance retrieval algorithm多键实例检索算法
【发布时间】:2013-08-25 05:27:19
【问题描述】:

我有一个类消息如下:

class Message{

String entity;
Boolean isAvailable;
.........

//getters and setters
.....
.....
}

给定一个代码,我必须找出所有 Message 实例,其实体与此代码的前 8 个或更多字母匹配,并且是“可用”。
这看起来是 Trie 非常适合的地方。
但是,鉴于搜索同样针对 2 个属性 - 是否有任何算法可以让我更快地进行选择?
或者,是否有可以容纳多个键的 Trie 变体?

【问题讨论】:

    标签: algorithm trie


    【解决方案1】:

    isAvailable 设置为 false 时,为什么不直接从 trie 中删除它?

    或者,如果您还需要搜索isAvailable == false,那么您可以尝试两次。这提供了由 trie 支配的 O(n) 查找时间,因此它与使用 trie 一样快(听起来确实是解决问题的正确方法)。

    值得注意的是,“容纳多个键”可能不是您要查找的内容,因为这指的是匹配一个匹配 entityentity2Message。这有点复杂,但可以通过在 entity 上使用 trie 和在 entity2 上使用 trie 来完成,并在查找结果集的交集时,这也会产生线性时间解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-11
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 2021-11-24
      • 2020-11-30
      • 2016-10-07
      • 1970-01-01
      相关资源
      最近更新 更多