indexing - 压缩排序的整数

标签 indexing compression integer

我正在构建一个索引,它只是连续存储在二进制文件中的几组有序的 32 位整数。问题是这个文件变得非常大。我一直在考虑添加一些压缩方案,但这有点超出我的专业知识。所以我想知道,在这种情况下哪种压缩算法效果最好?此外,解压必须很快,因为该索引将用于进行查找。

最佳答案

如果您存储的整数很接近(例如: 1, 3 ,4, 5, 9, 10 等...)而不是一些随机的 32 位整数(982346...、3487623412...等),您可以这样做一件事:

找到 差异 在相邻数字之间,例如 2,1,1,4,1... 等(在我们的示例中)然后 霍夫曼编码 这个数字。

如果您将它们直接应用于您拥有的原始数字列表,我认为霍夫曼编码不会起作用。

但是,如果您有一个附近数字的排序列表,则很有可能通过对数字差异进行霍夫曼编码来获得非常好的压缩比,这可能比使用 Zip 库中使用的 LZW 算法更好。

无论如何,感谢您发布这个有趣的问题。

关于indexing - 压缩排序的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/523733/

相关文章:

sql - 如何检查 TOAST 是否在 postgres 中的特定表上工作

sql - SQL Int(N) 的大小是多少?

python - 在第二维上用相同的索引扩展列表

mysql - Mysql存储函数和groupwise min

python - 如何在 imsave() (Agg 后端)中设置 PNG 的压缩参数?

python - 如何在Python中压缩文件?

Java bufferstrategy图形或整型数组

java - Java 的 32 位整数表示系统需要澄清吗?

Mysql索引,我最多可以添加多少?

c - 如何访问字符数组的第一个字符?