d-Left Hashing
来源:互联网 发布:数据字典的主要作用 编辑:程序博客网 时间:2024/05/15 10:35
下面介绍简单介绍一下d-left hashing。d-left hashing中的d是多个的意思,我们先简化这个问题,看一看2-left hashing。2-left hashing指的是将一个哈希表分成长度相等的两半,分别叫做T1和T2,给T1和T2分别配备一个哈希函数,h1和h2。在存储一个新的key时,同时用两个哈希函数进行计算,得出两个地址h1[key]和h2[key]。这时需要检查T1中的h1[key]位置和T2中的h2[key]位置,哪一个位置已经存储的(有碰撞的)key比较多,然后将新key存储在负载少的位置。如果两边一样多,比如两个位置都为空或者都存储了一个key,就把新key存储在左边的T1子表中,2-left也由此而来。在查找一个key时,必须进行两次hash,同时查找两个位置。
上面的介绍中有一点要注意,就是在作位置选择时,考虑的是两个哈希函数映射的位置中已经存储的key(包括碰撞的情况)的个数,而不是两个子表中已有key的个数。
了解了2-left hashing,d-left hashing就很好理解,它只是对前者的扩展。2-left hashing固定了子表的个数是2,d-left hashing更加灵活,子表的个数是一个变量d,同时也意味着哈希函数的个数是d。在d-left hashing中,整个哈希表被分成d个从左到右依次相邻的子表,每个子表对应一个相互独立的哈希函数。在加入新key时,这个key被d个哈希函数同时计算,产生d个相互独立的位置,然后将key加入到负载最轻的位置(bucket)中。如果负载最轻的位置有多个,就把key加入到最左边的负载最轻的子表中。同样地,如果要查找一个key,需要同时查找d个位置。
- d-Left Hashing
- D-left hashing
- hash表--d-left-hashing
- d-left和cuckoo hash
- Hashing
- Hashing
- Hashing
- Hashing
- Hashing
- Hashing
- d-Left Counting Bloom Filter (1)
- d-Left Counting Bloom Filter (2)
- d-Left Counting Bloom Filter (3)
- d-Left Counting Bloom Filter (4)
- d-Left Counting Bloom Filter (5)
- 评价d-Left Counting Bloom Filter
- left
- NBUT 2012 Summer Training - 1 / [D] Dress, Left Dress!
- Uboot在2410板子上移植
- ASP.NET2.0里web.config配置的读写
- 转贴:将log4net日志记录到数据库中
- [Tool]判断用户输入是否符合规范(大小写0~9数字)
- [Tool]纯代码绘制提示框
- d-Left Hashing
- 美容DIY
- jdbc - oracle
- Adodb.Stream 组件的使用说明
- zzzz
- Enctype 属性
- 用ADODB.Stream代替FSO读取文本文件
- 在VC中如何结束进程和启动新进程?
- 转贴:log4net使用经历记载