gpt4 book ai didi

c - 如何压缩大小为1024*1024*1024*4的稀疏数组

转载 作者:行者123 更新时间:2023-11-30 21:00:36 24 4
gpt4 key购买 nike

我有一个稀疏数组,大小为 1024 * 1024 * 1024 * 4。该数组的项目是字节。所以数组的内存是4G。它是一个稀疏数组,即非零项只有600M左右。希望能够提出一种存储结构来压缩稀疏数组(压缩到2~3G),并且具有良好的访问速度。

最佳答案

合适的表示取决于稀疏数组所需的操作。一般方法是将非零项的位置及其值存储在数据结构中。

一种选择是使用哈希表。

enum {NumDimensons = 4};
struct ArrayLocation {
int16_t location[NumDimensions];
};

typedef uint8_t ArrayValue;

// Hash Table with key as ArrayLocation and value as ArrayValue

get()put() 这样的哈希表操作很简单,但迭代却不是。如果迭代很重要,一种选择是使用二叉搜索树。

关于c - 如何压缩大小为1024*1024*1024*4的稀疏数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40449996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com