我想使用尚未确定的整数压缩/解压缩方法压缩一个整数数组,最初初始化为0。
是否可以使用某种整数压缩方法使用C或C ++准确地增加(+1)压缩整数数组的特定元素?
答案 0 :(得分:2)
在所有常见的压缩技术中,有两种技术在没有完全解压缩周期的情况下可以在其中使用。
首先,专门为此构建了稀疏数组。对于稀疏数组,通常会将index的映射存储为value。您不存储尚未修改的数组元素,因此如果您的大多数数组为0,则无需存储它。模拟中的许多数组(和矩阵)都很稀疏,而且有大量文献。这里添加一个值只是用[]访问索引并递增 - 如果不存在则访问将创建。
接下来,如果您发现正在使用相同数字的大序列,则运行长度编码也可能有效,但这些“运行”的数字并不完全相同。由于它们不相同,稀疏数组不起作用,RLE是一种解决方案。增加一个数字并不像稀疏那样简单,但基本上如果不是一个运行,你添加并检查是否可以进行新的运行。如果是运行的一部分,则拆分运行。 RLE通常只对视觉数据或某些数学模式有意义。
答案 1 :(得分:1)
如果你的增量方法是:
,你当然可以实现这个如果你想以较少的愚蠢方式增加,你需要对压缩过程有深入了解,因此我们会给你更多的帮助。