我需要一个内存中的数据结构的键值对(400 MB的数据)。我对键有以下限制:
为字符串键提供DS会使键比较过于昂贵。因此,DS (Hash,B+Tree)的某些选项被排除在外。
我的问题是,如何创造性地将字符串键转换为整数键?该解决方案需要具有以下属性:
对于关键模式"k1k2k3.*“,它应该对整数进行上下界划分,以便根据这些边界在DS中查找少数条目。
我在solution towards this的上下文中问这个问题
发布于 2018-06-04 09:03:09
每个k(i)都有6-8个可能性。然而,k3和k4有256000种可能性。
如果可以在k1 k2 k3 k4 k5中拆分密钥,则可以这样对其进行编码:
3 bits for k1
3 bits for k2
18 bits for k3
18 bits for k4
3 bits for k5这个可以产生45位。所以你可以把你的键压缩为0到2^45-1之间的整数.这个接缝很大,特别是如果您只对k3和k4使用几个可能的值。
所以我会用k1 k2的6位来精确映射到索引,而不是依赖于k3 k4有多密集,这是k3和k4的某种树结构,而不是k5的精确映射。
https://stackoverflow.com/questions/50676031
复制相似问题