1

具有以下特点的最佳压缩算法是什么:

  • 应该花费更少的时间来解压(可以花费更多的时间来压缩)
  • 应该能够压缩排序的数据(大约 3,000,000 个字符串/整数的列表......)

请连同指标一起提出建议:压缩率、压缩和解压缩的算法复杂度(如果可能)?

4

4 回答 4

11

整个网站致力于压缩基准测试在这里

于 2008-12-22T18:22:16.240 回答
1

好吧,如果您只想要速度,那么标准 ZIP 压缩就可以了,而且它很可能已经集成到您的语言/框架中(例如:.NET 有它,Java 有它)。有时最通用的解决方案是最好的,ZIP 是一种非常成熟的格式,任何 ZIP 库和应用程序都可以与任何其他格式一起使用。

但是如果你想要更好的压缩,我会推荐7-Zip,因为作者很聪明,很容易掌握并鼓励人们使用这种格式。

为您提供压缩时间是不可能的,因为它与您的硬件直接相关。如果你想要一个基准,你必须自己做。

于 2008-12-22T18:20:41.173 回答
1

您不必担心减压时间。较高压缩级别所花费的时间主要是寻找最长的匹配模式。

解压

1) Writes the literal 
2) for (backward position, length)=(m,n) pair, 
   goes back, in the output buffer, m bytes, 
   reads n bytes and 
   writes n bytes at the end of the buffer.

所以解压时间与压缩级别无关。而且,根据我在通用解压虚拟机 (RFC3320) 方面的经验,我想任何解压算法都是如此。

于 2008-12-22T18:45:52.527 回答
0

这是一个有趣的问题。在字符串和整数的此类排序数据上,我希望差异编码压缩方法在压缩率方面优于任何开箱即用的文本压缩方法,如LZ77 或 LZ78。通用编码器不使用数据的特殊属性。

于 2012-12-04T12:52:01.817 回答