【发布时间】:2016-01-02 11:43:20
【问题描述】:
我正在寻找不需要rehash 进行扩展和收缩的hash table 数据结构?
Rehash 是一项消耗 CPU 的工作。我想知道是否有可能以根本不需要重新散列的方式设计散列表数据结构?你以前听说过这样的数据结构吗?
【问题讨论】:
-
想想哈希表在内部是如何工作的,以及为什么它们是这样设计的。您希望无重新哈希哈希表如何工作?
-
用对象存储对象的哈希值,并使用多级哈希表。
-
如果您担心将数据复制到新的 HT 导致的暂停(对于实时系统可能会出现问题),您可以逐步进行复制,即保留两个旧的随着时间的推移,新的 HT 和复制元素。在此期间,如果查找失败,您将不得不使用旧的 HT。如果你想以小幅度增加大小并避免在这些过程中复制所有数据,你应该研究一致的散列,这是 DHT 经常使用的东西。
标签: c data-structures hashtable