美文网首页
Hash Table 之 Collision resolutio

Hash Table 之 Collision resolutio

作者: 天之見證 | 来源:发表于2018-08-22 18:09 被阅读0次

    Hash Table相关术语:

    A hash table uses a hash function to compute an index into an array of buckets or slots, from which the desired value can be found

    1. Separate chaining

    1.1 Separate chaining with linked lists

    separate chaining with linked lists

    bucket只存储后面list的头节点

    1.2 Separate chaining with list head cells

    separate chaining with list head cells

    bucket存储第一个元素,其余的元素再存在后面的list

    2. Open addressing

    open addressing with linear probing

    数据都存在bucket中,没有后面的链表结构, 根据hash找到的并不是最终的数据,所以称为open

    其中对于具有相同hash值的数据,寻找下一个存放地址的方法可以分为3中:

    1. Linear probing: 搜寻地址之间等间隔递增 (上图表示的是间隔为1时的情况), 类似 H+1, H+2, \ldots, H+k
    2. Quadratic probing: 搜寻地址之间的间隔为二次多项式的值+由原hash函数计算出的初始值, 类似 H+1^2, H+2^2, \ldots,H+k^2
    3. Double hashing: 搜寻地址之间的间隔由另一个hash函数计算而出

    ref:

    1. https://en.wikipedia.org/wiki/Hash_table#Collision_resolution
    2. https://en.wikipedia.org/wiki/Open_addressing
    3. https://en.wikipedia.org/wiki/Quadratic_probing

    相关文章

      网友评论

          本文标题:Hash Table 之 Collision resolutio

          本文链接:https://www.haomeiwen.com/subject/bcgyiftx.html