动态哈希方法用于克服桶溢出等静态哈希问题。
在此方法中,随着记录的增加或减少,数据桶会增大或减小。 此方法也称为可扩展哈希方法。
该方法使哈希动态化,即,它允许插入或删除而不会导致性能不佳。
i
。i
位。 这给出了目录的索引。示例:
考虑将以下将键分组到桶中,具体取决于其哈希地址的前缀:
2
和4
的最后两位是00
。所以它将进入桶B0
。 5
和6
的最后两位是01
,因此它将进入存储桶B1
。 1
和3
的最后两位是10
,因此它将进入桶B2
。 7
的最后两位是11
,所以它将进入B3
。
将带有哈希地址10001的键9插入上述结构中:
9
具有散列地址10001
,因此它必须进入第一个桶。 但是桶B1
已满,所以它要分裂。5
分离5
,9
,因为最后三位5
,9
是001
,所以它将进入桶B1
,最后三位6
是101
,因此它将进入桶B5
。2
和键4
仍在B0
中。 B0
中的记录由000
和100
条目指向,因为条目的最后两位都是00
。1
和键3
仍在B2
中。 B2
中的记录由010
和110
条目指示,因为两个条目的最后两位都是10
。7
仍在B3
中。 B3
中的记录由111
和011
条目指向,因为两个条目的最后两位都是11
。动态哈希的优点
动态哈希的缺点