`
have_life
  • 浏览: 151386 次
社区版块
存档分类
最新评论

哈希 Open Hashing 和 Closed Hashing

阅读更多
1. Open Hashing, 又叫拉链法
2. Closed Hashing, 又叫开地址法 (Open Addressing)

理由:
1.叫拉链,是因为哈希冲突后,用链表去延展来解决。既然有了延展,你就应该明白为啥叫“Open”了。

2.叫Closed,是因为哈希冲突后,并不会在本身之外开拓新的空间,而是继续顺延下去某个位置来存放,所以是一个密闭的空间,所以叫“Closed”,至于开地址(Open Addressing),这个应该相对于那种通过链表来开拓新空间,它是在本身地址上,另外找个位置。所以叫开地址。


参照
1. http://m.oschina.net/blog/32539

2. http://wenku.baidu.com/view/ebb496c09ec3d5bbfd0a74b2.html (文库ppt,不错)



---------

(2)拉链法的优点
    与开放定址法相比,拉链法有如下几个优点:
(1)拉链法处理冲突简单,且无堆积现象,即非同义词决不会发生冲突,因此平均查找长度较短;
(2)由于拉链法中各链表上的结点空间是动态申请的,故它更适合于造表前无法确定表长的情况;
(3)开放定址法为减少冲突,要求装填因子α较小,故当结点规模较大时会浪费很多空间。而拉链法中可取α≥1,且结点较大时,拉链法中增加的指针域可忽略不计,因此节省空间;
(4)在用拉链法构造的散列表中,删除结点的操作易于实现。只要简单地删去链表上相应的结点即可。而对开放地址法构造的散列表,删除结点不能简单地将被删结点的空间置为空,否则将截断在它之后填人散列表的同义词结点的查找路径。这是因为各种开放地址法中,空地址单元(即开放地址)都是查找失败的条件。因此在用开放地址法处理冲突的散列表上执行删除操作,只能在被删结点上做删除标记,而不能真正删除结点。

(3)拉链法的缺点
    拉链法的缺点是:指针需要额外的空间,故当结点规模较小时,开放定址法较为节省空间,而若将节省的指针空间用来扩大散列表的规模,可使装填因子变小,这又减少了开放定址法中的冲突,从而提高平均查找速度。
分享到:
评论

相关推荐

    哈希表基础及代码

    哈希表一般分为两类:“开散列”(Open Hashing)和“闭散列”(Closed Hashing)。 - **闭散列**是指所有元素都在同一个数组中进行存储。 - **开散列**则是允许部分元素存放在数组外的链表或其他数据结构中。 ...

    数据结构英文教学课件:27_searching_03.pdf

    主要有两种策略:开放寻址法(Open Hashing)和闭合寻址法(Closed Hashing)。 开放寻址法是指当发生冲突时,寻找下一个可用的槽位。具体方法包括线性探测再散列、二次探测再散列和双哈希法等。这种策略的优点是...

    大数据常见处理方法总结.pdf

    碰撞处理是哈希表设计的关键,常见的策略包括开放寻址法(Closed Hashing)和链地址法(Open Hashing)。 扩展到d-left hashing,如2-left hashing,是将哈希表分割成多个部分,并使用多个哈希函数,以减少碰撞和...

    常用大数据量,海量数据处理方法,算法总结

    碰撞处理有两种方法:open hashing(拉链法)和 closed hashing(开地址法)。 扩展的方法包括 d-left hashing,例如 2-left hashing,将哈希表分成长度相等的两半,分别配备一个哈希函数,用于存储和查找。 bit-...

    大数据量,海量数据处理方法总结参照.pdf

    综上所述,处理大数据量的方法包括但不限于Bloom Filter、Hashing和Bit-Map。这些技术各有优缺点,适用于不同的场景,通过灵活选择和优化,可以有效地处理和分析大规模数据集,满足各种业务需求。在面试或实际工作中...

    java大数据

    Java大数据处理技术主要涵盖三个核心概念:Bloom Filter、Hashing和Bit-Map。这些方法在处理海量数据时,能够高效地解决数据查重、快速查找和内存优化等问题。 1. **Bloom Filter** Bloom Filter是一种空间效率极...

    大数据常见处理方法总结

    当发生哈希冲突(即两个不同的数据映射到同一位置)时,有两种主要解决方法:开放寻址法(Closed Hashing)和链地址法(Open Hashing)。开放寻址法是在哈希表中寻找下一个空槽,而链地址法则是在冲突位置使用链表...

    高效IT 大数据量处理技术

    哈希冲突的处理方式主要包括开放寻址法(Closed Hashing)和链地址法(Open Hashing)。开放寻址法是当冲突发生时,寻找下一个空的哈希槽,而链地址法则是每个哈希槽可能链接一个链表,所有哈希到同一位置的元素都在...

    大数据量,海量数据处理方法总结[参考].pdf

    综上所述,面对大数据量和海量数据处理,Bloom Filter、Hashing和Bitmap是常用且有效的工具。它们在资源有限的情况下,能够快速地处理数据,实现高效的数据查找、判重和统计。在实际应用中,需要根据具体问题和资源...

    大数据量,海量数据处理方法总结[转][文].pdf

    常见的处理策略有开放寻址法(Closed Hashing)和链地址法(Open Hashing)。开放寻址法在冲突时寻找下一个空槽,链地址法则将冲突的元素链接在一起。d-left hashing是一种多路开放寻址法,通过两个或多个哈希函数...

    大数据量,海量数据 处理方法总结.docx

    关键在于选择合适的哈希函数以减少冲突,并采用冲突解决策略,如开放寻址法(Closed Hashing)和链地址法(Open Hashing)。例如,d-left hashing是一种优化的哈希策略,通过将哈希表分割并使用多个哈希函数来平衡...

    大数据量,海量数据-处理方法总结

    d-left hashing 是一种 Hashing 方法,将一个哈希表分成长度相等的两半,分别叫做 T1 和 T2,给 T1 和 T2 分别配备一个哈希函数,h1 和 h2。在存储一个新的 key 时,同时用两个哈希函数进行计算,得出两个地址 h1...

    大数据量,海量数据 处理方法总结

    ### 大数据量,海量数据处理方法总结 ...无论是Bloom Filter的概率型解决方案,还是Hashing和Bit-Map的精确查找与存储方式,都能在各自的适用范围内发挥重要作用,帮助我们在面对大数据挑战时游刃有余。

    Google, Baidu, Tencent 面试题总结

    - **碰撞处理**:主要包括开放寻址法(Closed Hashing)和链地址法(Open Hashing)两种方式。 **扩展应用**: - **d-Left Hashing**:这是一种更复杂的哈希策略,它将哈希表分为多个部分,并为每个部分分配不同的...

    面试中的大数据处理

    2-left hashing指的是将一个哈希表分成长度相等的两半,分别叫做T1和T2,给T1和T2分别配备一个哈希函数,h1和h2。在存储一个新的key时,同时用两个哈希函数进行计算,得出两个地址h1[key]和h2[key]。这时需要检查T1...

    大数据处理方法

    - **碰撞处理:** 主要有两种方式,开放寻址法(Closed Hashing,开地址法)和链地址法(Open Hashing,拉链法)。 **扩展:** - **D-Left Hashing:** 这是一种多哈希表的变种,可以进一步提高哈希表的性能。例如...

Global site tag (gtag.js) - Google Analytics