[英]What is the best data structure for text auto completion?
我有一长串单词,我想显示以用户输入的文本开头的单词。 当用户输入一个字符时,应用程序应该更新显示给用户的列表。 它应该类似于 Android 上的 AutoCompleteTextView。 我只是对存储单词的最佳数据结构感到好奇,以便搜索非常快。
可以使用特里。 http://en.wikipedia.org/wiki/Trie https://stackoverflow.com/search?q=trie
一篇不错的文章 - http://www.sarathlakshman.com/2011/03/03/implementing-autocomplete-with-trie-data-structure/
PS:如果您有一些“不分支”的子序列,那么您可以通过使用基数树来节省空间,这是一种在可能的情况下将多个字符放入节点的树实现 - http://en.wikipedia.org /wiki/基数树
为了实现自动完成功能,还使用了三元搜索树(TST):
http://igoro.com/archive/efficient-auto-complete-with-a-ternary-search-tree/
但是,如果您想在字符串中查找任何随机子字符串,请尝试使用广义后缀树。
尝试(及其各种变体)在这里很有用。 本文对这个主题进行了更详细的处理。 也许你可以为 Android 实现一个完成树?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.