替代品的问题涉及非常大的数组索引存储非常大的值(Alternatives for problems

2019-10-19 17:42发布

请提出解决其中蛮力解决方案是使用阵列具有非常大的索引和存储非常大的值(超出INT的范围非常大手段)问题的一些替代品。 我使用Java来解决这个问题。

样本问题:把没有大的鹅卵石一个非常大的群体桶,然后计算每个桶平均鹅卵石。

一种方法是将声明一个大阵列和保持根据由用户指定的索引放置卵石,然后计算平均值。 不过这样一来,我们就可以使用这种阵列的大空间。

Answer 1:

如果数组是稀疏的,一种选择可能是一个Map索引的价值

如果所有的数据仍然可以加载到内存中,该指数刚刚超过范围int ,你可以考虑数组的数组 。 主阵列可以包含尺寸的阵列让我们说1000000000.此数组中第0索引将包含值0-999999999,所述第一索引,1000000000-1999999999等

另一种方法是使用文件 。 一个RandomAccessFile可能有助于手动做到这一点,或者有可能是一些库,给你一个阵列接口并获取文件I / O幕后的照顾。



文章来源: Alternatives for problems involving very large array indexing storing very large values