1、使用拉链法解决冲突

例:有一堆数据元素,关键字分别为{14,63,68},散列函数H(key)=key%7,散列表长度是7

查找14成功需要比较1次
查找63成功需要比较2次
查找68成功需要比较1次
ASL成功=(1+2+1)/ 3【注意:分母是关键字个数】
查找映射结果是0失败需要比较0次【注意:和空指针^比较时,次数无需+1】
查找映射结果是1失败需要比较2次【注意:先和14比较,再和63比较,最后到空指针,终止比较】
查找映射结果是2失败需要比较0次
查找映射结果是3失败需要比较1次
查找映射结果是4失败需要比较0次
查找映射结果是5失败需要比较0次
查找映射结果是6失败需要比较0次
ASL失败=(0+2+0+1+0+0+0)/7【注意:分母是散列函数H(key)=key%7中的7】

2、使用线性探测法解决冲突

开放定址法:Hi=(Hi(key) + di)%表长【重要】
线性探测是 di 的取值为 0,1,2…表长-1

例:有一堆数据元素,关键字分别为{7,6,13},散列函数H(key)=key%7,散列表长度是7【注意:散列表长=p】

查找7成功需要比较1次
查找6成功需要比较1次
查找13成功需要比较3次
ASL成功=(1+1+3)/ 3

13放入散列表的具体计算过程
H3(13)=13%7=6
【1】H3=(6+0)%7=6【和6冲突】
【2】H3=(6+1)%7=0【和7冲突】
【3】H3=(6+2)%7=1【放入】

查找映射结果是0失败需要比较3次【比较到的下标分别是0、1、2】
查找映射结果是1失败需要比较2次【比较到的下标分别是1、2】
查找映射结果是2失败需要比较1次【比较到的下标分别是2】
查找映射结果是3失败需要比较1次
查找映射结果是4失败需要比较1次
查找映射结果是5失败需要比较1次
查找映射结果是6失败需要比较4次【注意回头:比较到的下标分别是6、0、1、2】
ASL失败=(3+2+1+1+1+1+4)/7

例:有一堆数据元素,关键字分别为{7,6,13},散列函数H(key)=key%7,散列表长度是9【注意区别:散列表长>p】

查找7成功需要比较1次
查找6成功需要比较1次
查找13成功需要比较2次
ASL成功=(1+1+2)/ 3

13放入散列表的具体计算过程
H3(13)=13%7=6
【1】H3=(6+0)%9=6【和6冲突】
【2】H3=(6+1)%9=7【放入】

查找映射结果是0失败需要比较2次【比较到的下标分别是0、1】
查找映射结果是1失败需要比较1次
查找映射结果是2失败需要比较1次
查找映射结果是3失败需要比较1次
查找映射结果是4失败需要比较1次
查找映射结果是5失败需要比较1次
查找映射结果是6失败需要比较3次【注意:比较到的下标分别是6、7】
ASL失败=(2+1+1+1+1+1+3)/7

3、使用平方探测法解决冲突

例:有一堆数据元素,关键字分别为{7,14,21},散列函数H(key)=key%7,散列表长度是9

注意:21是放在下标8的位置上

查找7成功需要比较1次
查找14成功需要比较2次
查找21成功需要比较3次
ASL成功=(1+2+3)/ 3

注意:查找21的di是-1表示从下标0位置向左走1步,走到8(有点像循环队列)

查找映射结果是0失败需要比较4次【比较到的下标分别是0、1、8、4】
查找映射结果是1失败需要比较2次
查找映射结果是2失败需要比较1次
查找映射结果是3失败需要比较1次
查找映射结果是4失败需要比较1次
查找映射结果是5失败需要比较1次
查找映射结果是6失败需要比较1次
ASL失败=(4+2+1+1+1+1+1)/7

参考:https://www.bilibili.com/video/BV1b7411N798?p=76&share_source=copy_web

求平均查找长度(成功+失败)相关推荐

  1. 二叉排序树的平均查找长度(成功不成功)

    二叉排序树的平均查找长度 上图所示为二叉排序树 查找成功时的平均查找长度: ASL=∑(本层高度*本层元素结点个数)/结点总数 =(1 * 1 +2 * 2+3 * 2)=11/5 查找失败时的平均查 ...

  2. 二叉排序树(查找树)平均查找长度(成功和不成功)

    如图所示的二叉排序树 查找成功的平均查找长度为:∑(本层高度*本层元素个数)/节点总数=(1*1+2*2+3*3+3*4)/9 查找不成功的平均查找长度:∑(本层高度*本层补上的叶子个数)/补上的叶子 ...

  3. 散列表查找失败平均查找长度

    如果你看了很多其他博客然后都看不懂看到了这篇,你一定可以容易懂的!我佛了,这么简单的东西死板地讲题目不讲原理鬼看得懂啊,这种风气真的不行,我忍不住想骂一声垃圾,啥玩意儿,误人子弟!原理懂了啥题不会做? ...

  4. 求一颗二叉排序树查找成功和失败情况下的平均查找长度

    /** *    实验题目: *        求一颗二叉排序树查找成功和失败情况下的平均查找长度 *    实验目的: *        掌握二叉排序树的查找过程及其算法设计 *    实验内容: ...

  5. 哈希表:线性探测法和链地址法求查找成功与不成功的平均查找长度

    哈希表:线性探测法和链地址法求查找成功与不成功的平均查找长度 了解ASL的公式 线性探测法求ASL 链地址法求ASL 了解ASL的公式 查找成功时:ASL =1n\frac{1}{n}n1​ ∑i=1 ...

  6. 探究如何计算哈希表查找成功、失败时的平均查找长度(附实例)

    对于查找成功时的平均查找长度,书上有明确的定义: 而题目设定条件都是在等概率下查找,所以ASL=(C0+C1+...+Cn)*1/n. 这就说明了查找成功是针对关键字查找的,最后除以关键字的总个数. ...

  7. 折半查找判定树 二叉排序树 查找成功平均查找长度 查找失败平均查找长度

    写在前边的话:你的支持是我写作的动力,有帮助到你的话麻烦点赞加收藏呦.感激不尽!如有错误也请留言指正. 考研数据结构练习,欢迎订阅我的专辑<考研数据结构题型分类讲解练习> [哈尔滨工业大学 ...

  8. 哈希表查找——成功和不成功时的平均查找长度

    哈希表查找--成功和不成功时的平均查找长度 以下求解过程是按照"计算机统考的计算方法",不同的老师.教材在"处理冲突"上可能会有不同的方法,所以最主要的是掌握原 ...

  9. Hash表查找成功和查找不成功的平均查找长度(附总结)

    Hash表的平均查找长度包括查找成功时的平均查找长度和查找失败时的平均查找长度. 查找成功时的平均查找长度=表中每个元素查找成功时的比较次数之和/表中元素个数: 查找不成功时的平均查找长度相当于在表中 ...

最新文章

  1. 爱尔兰 APC 微生物组研究所—菌群研究的全球领航者之一
  2. java 之 多线程
  3. apache2 cgi配置
  4. QT的QSGGeometryNode类的使用
  5. 来一个可能防止恶意采集和爬虫的SH
  6. 数据结构——线性表的C语言实现
  7. Redis的启动、使用和停止
  8. jenkins构建记录日志_构建企业日志记录层的清单
  9. c语言程序设计中&是什么,C语言程序设计是什么
  10. 计算机网络自顶向下方法第6章-链路层和局域网.1
  11. anaconda的使用
  12. 表单式工作流功能模块设计方案
  13. 大一c语言程序设计计算器,C语言程序设计-课程设计《计算器程序》.docx
  14. Abaqus怎么切换中英文界面
  15. PMP课程笔记:第9章 项目资源管理
  16. php mysql 博客,PHP操作MySQL
  17. vue源码之数据侦测
  18. Java冒泡排序法 降序
  19. 41-【JS编程接口】DOM事件与事件委托
  20. javawebJAVAJSP酒店预订系统jsp酒店管理系统jsp民宿预订酒店jsp客房预订系统jsp宾馆客房预订系统

热门文章

  1. stm32 命名含义
  2. 椭球面上的常用坐标系及其相互关系
  3. 七、科大软件工程(孟宁)(7:设计方法论)
  4. 燕山大学教授「跨界」推翻爱因斯坦引争议
  5. 43.windbg-.expr、n(设置默认的表达式语法、默认的数字基础0x、0n、0t、0y)
  6. Pig系统分析(7)-Pig实用工具类
  7. python的global函数学习
  8. 2001年日语能力考试二级真题及答案
  9. 零一裂变合作商:零售行业如何做分销活动,让总营收提升3.3倍?
  10. 做数据分析不得不看的书有哪些?(文末抽奖送书)