【发布时间】:2018-03-15 13:51:10
【问题描述】:
我有一个小字符串列表,我想快速压缩它们。这样做的好方法是什么?除了大约 1300 万个长度为 5 到 30 个字符的字符串之外,这些字符串没有任何其他属性。
更新:来自 cmets,这些是通过网络发送的,用于连接,所以我不知道具体的属性,顺序无关紧要,我是批量发送的。
【问题讨论】:
-
什么字符串?小写英文单词?混合情况?随机字母数字字符?随机 8 位字节?
-
如果它们真的没有任何其他属性,那么它们是完全随机的,没有任何作用。如果它们至少有一些非随机性,那么可能像 gzip 这样的快速通用压缩器会找到其中的大部分。您也不会说您是否关心字符串的顺序;如果你不这样做,你也许可以通过良好的排序节省更多空间(例如,字典至少倾向于将具有相同前缀的字符串放在一起)。
-
如果您没有任何需要压缩表单的操作,您可以通过删除它们来半瞬时将它们压缩到 零 内存占用:说明压缩的内容表格应该是有用的。在处理之前不知道输入数据的属性(幸运的是)与缺乏这些属性不同。
-
不要评论 cmets 要求更多信息或澄清:编辑您的问题。特别是对于
send them over a network、bulk decompress或[decompressed] order doesn't matter等基本信息。
标签: string algorithm compression data-compression