我必须使用2个utf-8文本文件。在文件的每一行都有字符串,可以包含特定的语言字符,如Ü,Ö,±,ę。字符串是随机的顺序和长度,可以重复。在第一个文件中至少有3百万行(它可以很容易超过1行的行)。第二个文件比较小,通常可以得到大约40万行(但可以更大)。快速数据提取算法
我需要创建一个新文件,其中包含来自文件1的条目,其中包含出现在文件2和所有重复条目中的已删除条目。
目前我正在对这两个文件进行排序并删除重复条目。接下来,我将它们写入新文件,同时检查它们是否出现在第二个文件中。
有没有更快的方法来做到这一点?
编辑
内存是一个问题。我不会将这些字符串复制到内存中,购买文件操作。我的朋友建议不要复制到内存中,而是处理文件流。这个执行时间显着下降之后。
计算机管理员不想在其上安装数据库。
后排序我的代码神符像这样的循环:
if stringFromFile1 < stringFromFile2 then writeToFile3 and get next stringFromFile1
else if stringFromFile1 == stringFromFile2 then dropStringFromFile1 and get next stringFromFile1
else if stringFromFile1 > stringFromFile2 then get next stringFromFile2 and go to line 1
1亿?数据是否适合内存? – 2012-08-03 07:37:20