散列树(hash树)

        hash表的理想情况是通过哈希函数使每个关键字和一个唯一的存储位置相对应。但再牛逼的哈希函数只能尽可能地减少,而不能完全避免冲突.

哈希树

          选择从2开始的连续质数来建立一个十层的哈希树。第一层结点为根结点,根结点下有2个结点;第二层的每个结点下有3个结点;依此类推,即每层结点的子节点数目为连续的质数。到第十层,每个结点下有29个结点。

wKioL1Zj8xXR9kh8AADDr6MweSM474.png

从图中的设计,第十层可以表达的数有:2*3*5*7*11*13*17*19*23*29= 6464693230 个数,已经超过计算机中常用整数(32bit)的表达范围。连续100个质数就可以分辨大约M(100) = 4.711930 乘以10的219次方。

虽然达不到理论上勉强冲突,可以实现实现冲突。

参考文章

Hash树(散列树)和Trie树(字典树、前缀树)

猜你喜欢

转载自blog.csdn.net/y3over/article/details/86604590