首页 > 其他分享 >20230410 11.3. 冲突处理方法

20230410 11.3. 冲突处理方法

时间:2023-06-20 11:36:11浏览次数:36  
标签:装填 20230410 因子 11.3 地址 查找 冲突 key

处理冲突的方法

  • 开放地址法:换个位置
  • 链地址法:同一位置的冲突对象组织在一起

散列表查找性能分析

  • 成功平均查找长度(ASLs)
  • 不成功平均查找长度 (ASLu)

开放定址法(Open Addressing)

一旦产生了冲突(该地址已有其它元素),就按某种规则去寻找另一空地址

若发生了第 i 次冲突,试探的下一个地址将增加di,基本公式是:

\(h_i(key) = (h(key)+d_i) \mod TableSize ( 1 ≤ i < TableSize )\)

\(d_i\) 决定了不同的解决冲突方案:

  • 线性探测法(Linear Probing):\(d_i=i\)
  • 平方探测法(Quadratic Probing):\(d_i=\overset{+}{-}i^2\)
  • 双散列探测法(Double Hashing):\(d_i=i*h_2(key)\)
  • 再散列(Rehashing)
    • 当散列表元素太多(即装填因子 α太大)时,查找效率会下降;
    • 实用最大装填因子一般取 0.5 <= α<= 0.85
    • 当装填因子过大时,解决的方法

分离链接法(Separate Chaining)

将相应位置上冲突的所有关键词存储在同一个单链表中

标签:装填,20230410,因子,11.3,地址,查找,冲突,key
From: https://www.cnblogs.com/huangwenjie/p/17490522.html

相关文章

  • 20230410 11.4. 散列表的性能分析
    平均查找长度(ASL)用来度量散列表查找效率:成功、不成功关键词的比较次数,取决于产生冲突的多少影响产生冲突多少有以下三个因素:散列函数是否均匀;处理冲突的方法;散列表的装填因子α开放地址法:散列表是一个数组,存储效率高,随机查找。散列表有“聚集”现象分离链法:散列......
  • 【HarmonyOS】如何解决智能穿戴设备中swiper组件右滑与系统退出应用冲突问题(API6 JS)
    【关键字】API6、JS、swiper组件、智能穿戴、setSwipeToDismiss 【问题描述】使用API6JS开发智能穿戴设备HarmonyOS应用,在首页使用swiper组件时,右滑swiper时会退出应用,无法实现swiper右滑效果,效果如下所示:​ 【问题分析与原因】当页面栈只有一个页面时,默认滑动事件分发......
  • git 解决 both modified 冲突
     >解决此冲突分为两种需求:1.查看冲突,选择需要保留的修改,解决冲突并提交到服务器2.撤销自己本地的修改,并且不提交>注释:需求1比较普遍,解决冲突后直接提交就好了,此处不详说,重点讲需求2以需求2为目的,提供以下解决方案,操作步骤如下:     1.gitstatus查看状态......
  • touchstart、touchmove、touchend与click冲突
    在移动端,一个元素既注册有滑动事件,又注册有点击事件时就会出现一些问题。滑动事件的优先级是大于点击事件的,而当我们只想执行点击事件而不想触发滑动时间时,就必须做个处理事件执行顺序:touchstart→touchmove→touchend→click所以当我们执行点击事件时,其实在执行点击事件之前,就......
  • C++ Windows.h max宏与std::max冲突问题解决
    C语言引入的宏支持了一定程度的元编程,但它仅仅是简单的字符串替换,这种“六亲不认”的操作很容易导致一些编译错误。这篇文章介绍了一种场景:项目同时引入了老的C头文件,里面用宏定义了一些宏函数;还引入了C++的头文件,里面用其他方式定义了一些同名函数。具体到问题本身,这个......
  • Delphi 11.3编译旧项目APP安装出错
    今天编译一个旧的项目,已经记不得是什么版本的了,2018年项目,编译成功后,在华为HM3.0上安装正常,发给朋友,说安装出错。开始查原因,发现11.3,生成的targetSdkVersion为32,手工改成非32,如31,30都可以安装。DelphiTeacher说,加android:exported="true"能解决,看到有人用这种办法确实解决了。而......
  • el-api包冲突,java.lang.LinkageError: loader constraints violated when linking ja
    java.lang.LinkageError:loaderconstraintsviolatedwhenlinkingjavax/el/ExpressionFactoryclass严重:Servlet.service()forservletjspthrewexceptionjava.lang.LinkageError:loaderconstraintsviolatedwhenlinkingjavax/el/ExpressionFactoryclassat......
  • k8s中设置hostNetwork: true,怎么修改冲突的端口,yaml使用的是DaemonSet
    apiVersion:apps/v1kind:DaemonSetmetadata:name:cadvisornamespace:monitoringspec:selector:matchLabels:app:cAdvisortemplate:metadata:labels:app:cAdvisorspec:tolerations:#污点容忍,忽略master的......
  • 【章节2】husky + 自动检测是否有未解决的冲突 + 预检查debugger + 自动检查是否符合c
    在章节1中我们学习到了commit的规范、husky的安装和使用、lint-staged怎么安装以及怎么用来格式化代码。那么这篇文章我们来看看commit预处理中我们还能做哪些处理呢?自然,我们还是要用到husky这个东西的,大致过程其实和章节1异曲同工,无非是多加几个脚本做不同的处理。那么husky到底是......
  • IDEA中slf4j和logback冲突,快速排除(LoggerFactory is not a Logback LoggerContext but
    pom文件中右击  ctrl+f输入点击定位 选中shift+delet,直接排除  或者手动输入排除 ......