一个大小为2的32次方的byte稀疏数组array,占用内存为4G,希望提出一种存储方法对其进行压缩

如题,有一个大小为2的32次方的byte数组 items[4294967296],该数组占用内存为4G。它是一个稀疏数组,即非0的item大概只有600M个。希望可以提出一种存储结构可以压缩这个稀疏数组(压缩到2~3G),并且拥有良好的存取速度。

首先转换成稀疏表示法,也就是只记录下标非0的index和值。从而减小存储大小
然后对下标做索引,比如btree来加快存取速度。

分段存储,每段有个起始小标和分段数组,把连续的数据或者相对集中的数据分为一段:

index1 items[100]
index2 items[80]
。。。。