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

有人可以给一个好的算法,数据结构来实现自动完成吗?

最佳答案

trie是一种数据结构,可用于快速查找与前缀匹配的单词。

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

这是3种不同auto-complete implementations的比较(尽管它是Java语言而不是C++语言)。

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

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

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

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

关于c++ - 什么是最好的自动完成/建议算法,数据结构[C++/C],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1783652/

10-10 00:55
查看更多