算法如何在大文件中搜索短语?

时间:2014-05-19 01:06:52

标签: java

假设我有一个大文本文件(几MB到GB)的随机文本,只包含小写字母,没有空格。但是,有人在英语单词的中间位置添加一个字符串(仅由小写字母组成,没有空格)。

如果我不知道该字符串应该说什么(只是用英语写的,而不是完全随机的文本),我怎样才能找到该字符串的位置和所说的内容?我可以使用英语单词词典。

1 个答案:

答案 0 :(得分:0)

将字典构建为trie并遍历文件。 O(n)文件大小的时间(我相信在最坏情况下为O(文件大小* trie深度))和O(1)内存(固定字典的大小并假设小的最大单词)。这也是可流式处理的,并且非常高效,因此可以扩展到只有1 GB RAM的TB级数据。