c – 在压缩文本文件中快速搜索

c – 在压缩文本文件中快速搜索,第1张

概述我需要能够在压缩的大量文件(.txt)中搜索文本.压缩可以改为其他东西,甚至可以变成专有的. 我想避免解压缩所有文件并压缩(编码)搜索字符串并在压缩文件中搜索.这应该可以使用霍夫曼压缩与所有文件的相同码本. 我不想重新发明轮子,所以..任何人都知道像这样的库或者实施和测试过的霍夫曼算法,或者更好的想法? 提前致谢 大多数文本文件都使用 LZ-family算法之一进行压缩,这些算法将 Diction 我需要能够在压缩的大量文件(.txt)中搜索文本.压缩可以改为其他东西,甚至可以变成专有的.
我想避免解压缩所有文件并压缩(编码)搜索字符串并在压缩文件中搜索.这应该可以使用霍夫曼压缩与所有文件的相同码本.
我不想重新发明轮子,所以..任何人都知道像这样的库或者实施和测试过的霍夫曼算法,或者更好的想法?

提前致谢

解决方法 大多数文本文件都使用 LZ-family算法之一进行压缩,这些算法将 Dictionary Coder和 Entropy Coder(如Huffman)结合在一起.

因为字典编码器依赖于不断更新的“字典”,其编码结果取决于历史(字典中从输入数据直到当前符号的所有代码),因此无法跳转到某个位置并开始解码,而不首先解码所有先前的数据.

在我看来,你可以使用一个zlib流解码器,它可以随时返回解压缩数据,而无需等待整个文件解压缩.这不会节省执行时间,但会节省内存.

第二个建议是对英语单词进行霍夫曼编码,并忘记字典编码器部分.每个英语单词都映射到一个唯一的无前缀代码.

最后,@ SHODAN给出了最明智的建议,即索引文件,压缩索引并捆绑压缩文本文件.要进行搜索,只需解压缩索引文件并查找单词.这实际上是对单词执行霍夫曼编码的改进 – 一旦找到单词的频率(为了最佳地分配前缀代码),您已经构建了索引,因此您可以保留索引以进行搜索.

总结

以上是内存溢出为你收集整理的c – 在压缩文本文件中快速搜索全部内容,希望文章能够帮你解决c – 在压缩文本文件中快速搜索所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1234965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存