当用户键入字符时,我们看到Google,Firefox的一些AJAX页面显示了可能的项目列表。
有人可以为实现自动完成功能提供良好的算法和数据结构吗?
一个线索是可以用来快速找到匹配前缀词的数据结构。
编辑:这是一个示例,显示了如何使用一个示例来实现自动完成功能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 ++解决方案可能会有所不同。