java - 如何执行文本文件的二进制搜索

标签 java android binary-search

我在我的 Android 应用程序中使用了一个大文本文件 (5Mb)。我将文件创建为预先排序的字符串列表,并且文件一旦创建就不会更改。如何在不逐行读取的情况下对该文件的内容执行二进制搜索以找到匹配的字符串?

最佳答案

由于文件的内容没有改变,您可以将文件分成多个部分。比如 A-G、H-N、0-T 和 U-Z。这允许您检查第一个字符并立即能够将可能的字符集削减到原始大小的四分之一。现在线性搜索不会花费那么长的时间,或者读取整个文件可能是一种选择。如果 n/4 仍然太大,这个过程可以扩展,但想法是一样的。将搜索分割构建到文件结构中,而不是尝试全部在内存中完成。

关于java - 如何执行文本文件的二进制搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10010151/

相关文章:

android - 我用什么来代替 html 中的两个多选框以便在 Phone/Ipad 上工作

algorithm - 为什么二分搜索算法中的赋值不会增加时间复杂度?

java - 如何使用 switch case 表示两个变量?

Java 和加密强随机数

java - Eclipse 中多个模块的 Maven 依赖解析

android - 让Fragments使用相同的方法

binary-search - 使用二分搜索将元素插入到已排序的数组中

algorithm - 使用随机元素进行二分查找

java - Eclipse 在公司代理后面时无法更新 Maven 索引

java - 模拟使用外部类的方法,mockito