存储数字列表的最节省内存的方法

计算科学 算法 矩阵
2021-12-11 12:36:04

我的问题涉及一个大的矩阵,我从中提取和存储几个平方子矩阵。原始矩阵可能非常大,我可能需要存储数千个不同的子矩阵。n×mk×kk×k

我只需要存储两个整数列表,即行和列的索引。例如,它可以是一个矩阵,第 1、10、22、44 行如果我存储所有数字,那么如果我存储个矩阵,我需要在内存中保留数字,如果可能的话,我想避免这种情况。4×41,10,22,4410,90,110,1111000020000k

关于如何减少索引列表或两个索引列表的存储需求的任何想法?

非常感谢。

1个回答

1)您可以为索引使用较小的数据类型(例如 2 字节整数)

2) 如果您知道您的子矩阵具有相同的相对索引,例如行总是类似于 (i, i+a, i+b, i+c),您只需将索引存储到元素 (1,1 )

3) 同样,如果您的子矩阵的相对索引受到限制,例如,您的行是 (a, b, c, d),其中 da < 256,您可以将索引存储到元素 (1,1),然后使用字节该元素的偏移量