首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一种多键实例检索算法

一种多键实例检索算法
EN

Stack Overflow用户
提问于 2013-08-25 13:27:19
回答 1查看 75关注 0票数 0

我有一个类消息,如下所示:

代码语言:javascript
复制
class Message{

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

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

给定一个代码,我必须找出其实体与此代码的前8个字母或更多匹配的所有消息实例,并且这些实例是“可用”的。

这看起来是一个Trie很适合的地方。

然而,考虑到搜索同样基于两个属性--有没有什么算法可以让我更快地选择?

或者,是否有可以容纳多个键的Trie变体?

EN

回答 1

Stack Overflow用户

发布于 2013-08-25 17:40:11

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

或者,如果您还需要搜索isAvailable == false,那么您可以只尝试两次。这提供了由trie控制的O(n)查找时间,因此它是您使用trie所能获得的最快速度(听起来确实像是您的问题的正确解决方案)。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18426011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档