gpt4 book ai didi

java - 在排序文件中使用二进制搜索超快速自动完成(300000 行)

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:02 26 4
gpt4 key购买 nike

在我的 Android 应用程序中,我想要一个具有自动完成功能的输入字段。项目数量约为 300000。最好的解决方案似乎是将项目放入文件中(在 sdcard 上),每行一个项目,每行将具有相同数量的字符,以便我可以查找特定的行号.如果用户在文本字段中输入内容,我将二进制搜索(通过 RandomAccessFile)文件并显示建议。

我希望自动完成超快(最好在 100 毫秒以下,但我想这是不可能的),我可以做哪些优化?

更新 1:我会将用户输入转换为带空格的小写英文字符 (a-z)。所以 'A/b' 将被转换为 'a b' 然后进行搜索。

Uodate 2:我现在意识到我需要额外的东西 - 搜索以单词开头的子字符串。

最佳答案

你要找的是 TRIE

http://forums.sun.com/thread.jspa?threadID=5295936

在计算机科学中,trie 或前缀树是一种有序的树数据结构,用于存储关联数组,其中键通常是字符串。与二叉搜索树不同,树中没有节点存储与该节点关联的键;相反,它在树中的位置显示了它关联的键。一个节点的所有后代都有一个与该节点关联的字符串的公共(public)前缀,并且根与空字符串关联。值通常不与每个节点相关联,仅与叶子和一些与感兴趣的键对应的内部节点相关联。

关于java - 在排序文件中使用二进制搜索超快速自动完成(300000 行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com