問題:
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.
バケット内の要素の最適な順序を計算するアルゴリズムはありますか?
ここには2つのバリエーションがあり、コードのユーザーが速度とメモリ使用量のどちらかを選択できるようにするために、両方に興味があります。
A) Splitting is allowed, but should be minimized.
B) Splitting is not allowed, and padding should be minimized.
アルゴリズム、またはそれらへのリンク、あるいは「よく知られている」場合は少なくともそれらの名前を投稿してください。インターネット検索では、おそらく、最適なバケットサイズやハッシュテーブルでのデータの分割など、無関係な結果に答えが溺れてしまったために、有用なものは何も返されませんでした。
対象言語はJavaですが、違いはないと思います。