问题:
1) I have buckets of fixed size, in my case 64. This cannot change.
2) Values vary in size, but are never bigger than a bucket (64).
3) Access is much slower if any element is split between buckets.
是否有一些算法可以计算桶中元素的最佳顺序?
这里有两种变体,我对两者都感兴趣,以使代码的用户能够在速度和内存使用量之间进行选择:
A) Splitting is allowed, but should be minimized.
B) Splitting is not allowed, and padding should be minimized.
如果算法“众所周知”,请发布算法或指向它们的链接,或者至少发布它们的名称。互联网搜索没有返回任何有用的信息,可能是因为答案淹没在不相关的结果中,例如最佳存储桶大小和哈希表中的分区数据。
目标语言是 Java,但我不认为它应该有所作为。