我有一长串单词,我想显示以用户输入的文字开头的单词。当用户输入一个字符时,应用程序应该更新显示给用户的列表。它应该像Android上的AutoCompleteTextView。我只是很好奇存储单词的最佳数据结构,因此搜索速度非常快。什么是文本自动完成的最佳数据结构?
5
A
回答
10
可以使用trie。 http://en.wikipedia.org/wiki/Triehttps://stackoverflow.com/search?q=trie
一个很好的文章 - http://www.sarathlakshman.com/2011/03/03/implementing-autocomplete-with-trie-data-structure/
PS:如果你有一些子序列,即“不分支”,那么你可以通过使用基数线索,这是一个索引树的实现,使一些节省空间在节点的字符可能的情况下 - http://en.wikipedia.org/wiki/Radix_tree
1
1
为了实现自动完成功能,三元搜索树(TST)也可用于:
http://igoro.com/archive/efficient-auto-complete-with-a-ternary-search-tree/
但是,如果你想找到一个字符串中的任何随机字符串,尝试广义后缀树。
0
尝试次数(及其各种变种)是有用的在这里。关于这个主题的更详细的处理是在这个paper。也许你可以实现Android的完成trie?
相关问题
- 1. 什么是最好的自动完成/建议算法,数据结构[C++/C]
- 2. 什么是嵌入式文档MongoDB的最佳数据结构?
- 3. 什么数据结构或算法用于自动完成?
- 4. Apache Spark - 三维数据的最佳数据结构是什么
- 5. 自动完成结构化数据
- 6. 什么是具有IDEA自动完成对菊脚本的最佳方式
- 7. 什么是一组单词的最佳数据结构?
- 8. 什么是租赁系统的最佳数据库结构?
- 9. 什么是存储位置信息的最佳数据结构?
- 10. A *什么是开放集合的最佳数据结构?
- 11. 什么是地图树的最佳数据结构
- 12. 什么是存储表格数据结构的最佳类型?
- 13. Dijkstra算法实现的最佳数据结构是什么? C#
- 14. 线段搜索的最佳数据结构是什么?
- 15. 什么是我们的最佳数据库结构...:
- 16. 存储此数据结构的最佳方式是什么?
- 17. 什么是快速字典搜索的最佳数据结构?
- 18. 什么是池容器的最佳数据结构?
- 19. 什么是此层次结构的基于对象的最佳数据结构?
- 20. 什么是最近n秒内存储数据点的最佳数据结构
- 21. 创建启动文件夹结构的脚本的最佳做法是什么
- 22. 构建obj和exe文件的最佳dir结构是什么?
- 23. 什么是重构结构数组的最佳方式?
- 24. 搜索数据以获得文本自动完成的最佳方式
- 25. Ctypes结构自动完成
- 26. 有i18n自动完成文本视图的最佳方法
- 27. 将结果集数据放入文本文件的最佳方式是什么?
- 28. 什么是实现AJAX自动完成的Web服务的最佳方式
- 29. 什么是C#中固定深度树状数据的最佳数据结构?
- 30. 什么是存储道路网络数据的最佳数据结构
我认为哈希表是最好的。我不确定你使用的语言或平台,所以通常哈希表是快速和动态的。 – c0d3Junk13 2012-02-27 20:33:36
好吧......首先我们需要知道你正在使用的平台。 Android的? iOS版?视窗? Linux呢? OSX?网页或HTML? – 2012-02-27 20:35:39
@ c0d3Junk13如何在散列表中搜索具有给定前缀的字符串? – delnan 2012-02-27 20:37:17