![]() |
1
2
任何特定分区中的最高键显然都由
为了生成它们,您需要做的就是:
当然,这是假设
当然,对于像您这样大的密钥空间,它不会像上面那样简单,因为您不能将所有内容都放入一个变量中。不过,原则是一样的。只要你
|
![]() |
2
0
我不确定我理解你问题的背景-我没有研究一致的散列。 这个问题几乎等于,“我怎样才能在没有排序的情况下进行排序”。 另一种方法可能是这样做:
这是线性时间。但是,它不需要对关键空间有先验的了解,除非有一些nextiter遵循的顺序。 如果您正在对[0,2^128]->值进行分区,例如,您正在进行一些分布式计算或其他操作,那么您的运气会更好,因为整数结构良好。 我建议有一个稍微愚蠢的想法,在一个结构中有4个32位的int,然后编写自己的bigint例程来解决需要解决的问题。 如果你有自由 不 使用C++,普通LISP内置了BIGNITS。我觉得这很方便。 如果你有可代表的钥匙… 但是,当在一些空间A中使用n个元素查找一些大小相等的k分区时,我会这样处理问题:
|
![]() |
3
0
根据Tzaman的回答,这是我的解决方案。它最多允许255个分区(尽管可以更改)。它不需要2个num_分区的幂…它只会让最后一个分区占据剩下的部分。 如果你看到虫子,告诉我…:)
|