Hash(散列)冲突解决之线性探测再散列和二次探测再散列

这篇具有很好参考价值的文章主要介绍了Hash(散列)冲突解决之线性探测再散列和二次探测再散列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

线性探测再散列

H(key) = key %13,key 为关键字,采用开放地址法中的线性探测再散列解决冲突,依次输入11 个关键字,16,74,60,43,54,90,46,31,29,88,77,构造哈希表

Hash(散列)冲突解决之线性探测再散列和二次探测再散列
如图,例如 16%13=3,将16放入3号位置,29%13 = 3,将29放入3号位置,而此时3号位已经有元素。
就顺着表往后放,直到6号没有元素,29放入6号。
平均查找长度ASL=(2+1+1+1+1+4+1+1+1+1+1)/11=1.36

二次探测再散列

设关键字序列为:(62,30,18,45,21,78,66,32,54,48),
哈希函数为:hash(k) =k % 11,
采用二次探测再散列处理冲突,将其散列到地址空间为0到10的哈希表中,
在等概率条件下查找成功时的平均查找长度为?
探测过程:x+ 1^2, x - 1^2,x+ 2^2, x - 2^2
Hash(散列)冲突解决之线性探测再散列和二次探测再散列
Hash(散列)冲突解决之线性探测再散列和二次探测再散列
如图,例如45%11=1,放在1的位置,78%11=1,位置冲突,探测1+1^2=2位置,2位置没有关键字则放入,否则继续探测。
平均查找长度ASL=(1+1+3+1+1+2+1+3+4+1)/10=1.8文章来源地址https://www.toymoban.com/news/detail-480279.html

到了这里,关于Hash(散列)冲突解决之线性探测再散列和二次探测再散列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】哈希表:开散列和闭散列

    📝 个人主页 :超人不会飞) 📑 本文收录专栏 :《C++的修行之路》 💭 如果本文对您有帮助,不妨 点赞、收藏、关注 支持博主,我们一起进步,共同成长! 在前面的文章中,我们学习了红黑树,其查找数据的效率很高,查找的次数最差是树的高度logN次,并且要进行多次比

    2023年04月27日
    浏览(79)
  • 【C++】手撕哈希表的闭散列和开散列

    作者:დ旧言~ 座右铭:松树千年终是朽,槿花一日自为荣。 目标:手撕哈希表的闭散列和开散列 毒鸡汤:谁不是一边受伤,一边学会坚强。 专栏选自:C嘎嘎进阶 望小伙伴们点赞👍收藏✨加关注哟💕💕 谈到哈希表,大家都做过这样的题目,统计字符串的字母个数,像这

    2024年04月11日
    浏览(42)
  • C++语法(22)---- 哈希表的闭散列和开散列

    C++语法(21)---- 模拟map和set_哈里沃克的博客-CSDN博客 https://blog.csdn.net/m0_63488627/article/details/130354019?spm=1001.2014.3001.5501 目录 1.哈希表的介绍 1.stl中的哈希表使用 2.比较 3.哈希的原理 4.哈希映射的方法 1.直接定址法 2.除留余数法 5.解决哈希冲突 1.闭散列 2.开散列(哈希桶) unorder

    2024年02月02日
    浏览(46)
  • 【数据结构】哈希表的开散列和闭散列模拟

    在顺序和树状结构中,元素的存储与其存储位置之间是没有对应关系,因此在查找一个元素时,必须要经过多次的比较。 顺序查找的时间复杂度为0(N),树的查找时间复杂度为log(N)。 我们最希望的搜索方式:通过元素的特性,不需要对比查找,而是直接找到某个元素。 这一个

    2024年02月22日
    浏览(38)
  • 【C++进阶】哈希表开散列和闭散列的模拟实现(附源码)

    这里的闭散列和开散列解决哈希冲突的方法都是 除留余数法 。 一些哈希函数:字符串哈希算法 闭散列:也叫 开放定址法 ,当发生哈希冲突时,如果哈希表未被装满,说明在哈希表中必然还有 空位置,那么可以 把key存放到冲突位置中的“下一个” 空位置中去 。 如何找到

    2024年02月08日
    浏览(56)
  • HashMap如何解决hash冲突?

    这个问题我从3个方面来回答。 第一个方面,想要了解哈希冲突,首先我们要了解 哈希算法和哈希表 。 哈希算法 把任意长度的输入通过散列算法变成固定长度的输出,这个输出结果就是一个散列值(用来记录元素的位置) 哈希表 又叫做’散列表’,他是通过key直接访问到内存

    2024年02月14日
    浏览(52)
  • ThreadLocalMap中hash冲突的解决

    作用是设置当前线程绑定的局部变量: 首先是获取当前线程,并根据当前线程获取一个Map。 如果获取的Map不为空,则将参数设置到Map中(当前ThreadLocal的引用作为key)。这里调用了 ThreadLocalMap 的set方法。 如果Map为空,则给线程创建Map,并设置初始值。这里调用了 ThreadLocal

    2023年04月09日
    浏览(35)
  • 【数据结构】万字一文手把手解读哈希————(开/闭散列)解决哈希冲突完整详解(6)

    前言 大家好吖,欢迎来到 YY 滴 数据结构 系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁 主要内容含: 欢迎订阅 YY 滴C++专栏!更多干货持续更新!以下是传送门! YY的《C++》专栏 YY的《C++11》专栏 YY的《Linux》专栏 YY的《数据结构》专栏 YY的《C语言基础》专栏 YY的《

    2024年02月04日
    浏览(117)
  • 解决Hash(哈希表)冲突的四种方案

    参考鸣谢 解决哈希冲突必须知道的几种方法 小僵鱼 你还应该知道的哈希冲突解决策略 vivo互联网技术 解决哈希冲突的三种方法 kaleidoscopic 每日一题(哈希表及哈希冲突解决办法) 和笙 哈希是一种通过对数据进行压缩, 从而提高效率的一种解决方法 ,但由于哈希函数有限,数据

    2024年02月14日
    浏览(43)
  • 散列(Hash)表

    目录 一、散列表的基本概念 二、散列函数的构造方法 2.1直接定址法 2.2除留余数法 2.3数字分析法 2.4平方取中法 三、处理冲突的方法 3.1开放定址法 3.1.1线性探测再散列法 3.1.2平方探测法 3.1.3双散列法 3.1.4伪随机序列法 3.2链地址法(拉链法) 四、散列查找及性能分析   散列表也

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包