一尘不染

什么是最好的自动完成/建议算法,数据结构[C ++ / C]

algorithm

当用户键入字符时,我们看到Google,Firefox的一些AJAX页面显示了可能的项目列表。

有人可以为实现自动完成功能提供良好的算法和数据结构吗?


阅读 231

收藏
2020-07-28

共1个答案

一尘不染

一个线索是可以用来快速找到匹配前缀词的数据结构。

编辑:这是一个示例,显示了如何使用一个示例来实现自动完成功能http://rmandvikar.blogspot.com/2008/10/trie-
examples.html

这是3种不同的自动完成实现的比较(尽管它是Java而不是C ++)。

* In-Memory Trie
* In-Memory Relational Database
* Java Set

当查找键时,该Trie快于Set实现。特里和集合都比关系数据库解决方案快很多。

Set的设置成本低于Trie或DB解决方案。您必须决定是要频繁地构建新的“单词集”,还是要优先考虑查找速度。

这些结果是用Java编写的,使用C ++解决方案可能会有所不同。

2020-07-28