我在我的 Android 应用程序中使用了一个大文本文件 (5Mb)。我将文件创建为预先排序的字符串列表,并且文件一旦创建就不会更改。如何在不逐行读取的情况下对该文件的内容执行二进制搜索以找到匹配的字符串?
最佳答案
由于文件的内容没有改变,您可以将文件分成多个部分。比如 A-G、H-N、0-T 和 U-Z。这允许您检查第一个字符并立即能够将可能的字符集削减到原始大小的四分之一。现在线性搜索不会花费那么长的时间,或者读取整个文件可能是一种选择。如果 n/4 仍然太大,这个过程可以扩展,但想法是一样的。将搜索分割构建到文件结构中,而不是尝试全部在内存中完成。
关于java - 如何执行文本文件的二进制搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10010151/