我有一个大小为1 gb的大文件,格式为给定格式。每行有两个数字。 现在的任务是确定用户给出的数字是否在该范围内。 由于文件很大,需要很长时间。任何算法洞察都有助于减少时间因素。
#1 2
#3 5
#6 7
#7 41
#7 8
#9 41
Input : 4,8,9
OUTPUT
#1 2
#3 5 #4
#6 7
#7 41 #8,9
#7 8 #8
#9 41 #9
答案 0 :(得分:1)
如果只有几个输入,则扫描整个文件并且每行检查每个数字都不会更快。如果有许多输入(> = 20),您可以对它们进行排序,如果每行的下部和上部数字与输入数字的范围重叠,则使用二进制搜索进行检查。
答案 1 :(得分:0)
创建一个索引文件,该文件将具有每个/某些起始值的file_seek位置。这样您就可以直接跳到相关文件的一部分。