如何计算哈希表查找失败时的平均查找长度

article/2025/11/9 1:28:34

题目描述:
1.请回答采用线性探测再散列和链地址法处理冲突构建的哈希表中,查找失败时的平均查找长度如何计算?
例:已知一组关键字(19,14,23,1,68,20,84,27,55,11,10,79)
哈希函数为: H(key)=key MOD 13,哈希表长为m=15,设每个记录的查找概率相等,采用以上两种方法处理冲突,查找失败时的平均查找长度各是多少?

今天数据结构老师讲的哈希表,留了一个“如何计算哈希表查找失败时的平均查找长度”可是把我给难为住了。(从中午12:00到下午16:00才搞懂,果然还是我太vegetable了

几个小伙儿伴纷纷查资料,又是计算又是讨论,但是始终没有得到一致的结论。

纠结的点主要就是:分母应该是哈希表长还是哈希函数里所给的MOD后面的13呢。查了很多资料发现里面的说法不一,而且查到的每一篇博客所给的题目都是除数(MOD后面的那个数)和哈希表长相等。(啊,可能我找的太少啦吧,找啦两三篇都是这样就去问老师啦)

后来同学告诉我慕课上面讲的就有...anyway~现在是懂了,下面我就用大白话来描述一下我对这个“查找失败时的平均查找长度”的理解

查找失败的次数就是指:根据哈希函数算出来你所要查找的关键字的位置,如果这个位置存的不是你的目标关键字,那么就按照你所定的存储哈希函数的规则,也就是所在位置+1向后寻找,直到找到你所要的关键字,如果遇到了表中的空位,那么就说明这个表中没有这个关键字,那么查找失败的次数就是你从“通过哈希函数算出的位置”到“表中的第一个遇到的空位”所经过的位数

也就是说,分母指的是哈希表所给定的长度!!!

就比如说,你的哈希表如下所示(由上面题目“采用线性探测再散列”生成的哈希表;):

01234567891011121314
 14168275519208479231110  

创建过程为:按照关键字序列顺序依次向哈希表中填入,发生冲突后按照“线性探测”探测到第一个空位置填入

现在我问你:我想要查找关键字“2”,那么我需要比较多少次才能知道失败了呢?

答:根据所生成的表可以很容易的看出,关键字“2”不存在于表中。通过题目所给的哈希函数H(key)=key MOD 13可以算出关键字“2”应该在表中序号为2的位置,而如果2的位置所存的数与关键字“2”不相等,那么我需要按照“线性探测”直到找到关键字“2”。如果我没有找到关键字“2”,反而是遇到了空的位置,那么就说明关键字“2”查找失败了,那么我所走的步数就是查找失败的次数。把所有的位置查找失败的次数加起来除以表的总长度,就是“查找失败时的平均查找长度”

ps:如果有错误欢迎指正,来自一个卑微的计算机大学僧

答案(以线性探测再散列为例):第一行:序号;第二行:关键字;第三行:查找成功时查找长度;第四行:查找失败时查找长度

01234567891011121314
 14168275519208479231110  
 121431139113  
1131211109876543211

查找失败时的平均查找长度=(1+13+12+11+10+9+8+7+6+5+4+3+2+1+1)/ 15 = 93 / 15


http://chatgpt.dhexx.cn/article/lv1CSyFH.shtml

相关文章

tableau-行计算、视图计算、表计算

Tableau的表计算分为几类,重点是前面三类。 索引排序函数:index()、size()、first()、last() ——这四个不需要参数; rank()及延伸函数,如rank_dense(),rank_modified()等;移动计算函数:running_x ,比如 r…

从零开始Tableau | 10.表计算-基础

表计算是tableau中的一个重要知识点,也是应用的难点之一,但用好表计算,能较好解决日常分析中的许多计算问题。本节记录要点: 基础概念快速表计算创建表计算 基础概念 1.表计算是针对多行数据进行计算的方式,创建表计算…

tableau 如何选择tableau计算类型?基本计算 / LOD计算 / 表计算

一、计算在数据源和分析中的位置 基本计算和LOD表达式是数据源查询的计算,返回的是一个结果集。统称为custom calculation,生成的结果是custom filed 自定义字段,字段在哪里?字段在数据源层面。 ① 基本计算和LOD计算是在数据源层…

tableau:表计算

先创建一个‘利润2’的计算字段来copy一下‘利润’: 然后按照下图操作: 然后我们对‘利润2’添加表计算(比如说我们这里选择‘汇总’): 然后就变成了下面这样: 可以看到红色圈圈那里多了一个小三角形&a…

Tableau 表计算函数

关注微信公共号:小程在线 关注CSDN博客:程志伟的博客 使用表计算函数可自定义表计算。 表计算应用于整个表中值的计算, 通常依赖于表结构本身。 1.FIRST() 返回从当前行到分区中第一行的行数。 例如, 计算每季度销售额。在Date…

Tableau(9):计算字段、表计算、自定义表计算

文章目录 一、计算字段二、表计算三、自定义表计算参考资料 一、计算字段 步骤1:导入全球超市订单数据   步骤2:创建成本(销售额-利润)字段 步骤3:创建盈利标志(若利润大于0盈利,反之就是…

Tableau中的表计算

Tableau中的普通计算是把数据发送给数据源端进行计算,而表计算是在已经取得的查询结果基础上由Tableau做的进一步计算,即在结果表格里进行计算。Tableau中常见的表计算类型主要有:差异、百分比差异、合计百分比、排序、百分位、汇总及移动计算…

S3C2440的UART详解2440

转载出处:http://www.cnblogs.com/idle_man/archive/2010/12/19/1910548.html 1、UART原理简介 在介绍2440的UART控制器之前,我们首先来了解一下UART的原理。 UART:Universal Asynchronous Receiver/Transmitter(通用异步收发送器)&#xf…

《Linux驱动:s3c2440 lcd 驱动分析--终结篇》

文章目录 一,前言二,LCD原理和硬件分析2.1 LCD原理解析2.2 硬件电路2.2.1 LCD背光电路2.2.2 LCD屏2.2.3 S3c2440主控 三,LCD应用平台总线-设备-驱动模型3.1 lcd 设备的加载和注册3.2 lcd 驱动的加载和注册3.2.1 编译进内核,加载驱…

JZ2440ARM裸机学习笔记

第1节 eop常见问题 1、未连接op/eop到电脑 2、有其他程序在使用op/eop(同一时间只能有一个程序使用它) 3、JTAG线未接 4、开发板未上电 5、oflash xxx.bin 时当前文件夹下没有xxx.bin 6、烧写完后没有正确设置启动开关 7、烧写完后,op…

裸机系列——2440时钟

自己的总结: 1.2440 有俩个PLL ,UPLL 和MPLL 。UPLL 用于USB 时钟UCLK ,MPLL 对应FCLK .HCLK 、PCLK 。ARM 启动时直接使用外部晶振作为CPU 时钟,对应2440 为12Mhz 。只有在设置了时钟寄存器M P S 三个值,具体的寄…

【mini2440】S3C2440的串口

1. 基本电路 2. 相关寄存器 2.1 引脚 2.2 框图 2.3 串口 3. 相关代码 S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号,包括 CPU 的 FCLK,AHB 总线外设的 HCLK 以及 APB 总线外设的 PCLK。S3C2440A 包含两个锁相环(PLL)&#…

mdk+2440

目前仍然有许多人在使用ADS1.2编译ARM9的程序,这款编译器实属经典,但是已经多年停止更新、维护了。这篇文章主要讲解ARM公司受够Keil之后力推的一款编译器MDK。 MDK的使用上和ADS1.2有很多相似之处,从ADS1.2过渡到MDK也是非常容易的一种事情。…

2440 时钟设置

首先需要知道时钟的概念: 1、是用来同步系统信号; 就举例来说: 如果你cpu用i2c传输一个数据给从机设备,那么你传输数据时从设备怎么知道数据有没有到达,多久检测一次数据线??这个就需要时钟同步&#xff0c…

FL2440开发板简介及其烧录

目录 FL2440开发板简介 FL2440开发板 FL2440硬件资源列表 开发板存储系统: FL2440开发板烧录 FL2440烧录流程: 烧录准备工作 烧录文件: 硬件准备: 烧录过程 J-link操作: u-boot下烧录: 开发板启动流程&…

大数据分析平台和工具,主要有哪些?

1.Disco Disco最初由诺基亚开发,这是一种分布式计算框架,与Hadoop一样,它也基于MapReduce。它包括一种分布式文件系统以及支持数十亿个键和值的数据库。 支持的操作系统:Linux和OSX。 2.HPCC 作为Hadoop之外的一种选择&#x…

大数据分析平台的搭建方式有哪些

随着大数据时代的到来,数据价值的概念逐渐深入人心,许多企业开始搭建自己的大数据分析平台,以便在数据洪流中把握行业未来的发展方向。做任何事情之前,首先要设定目标和思路,然后根据确定的目标、思路和实际情况制定可…

目前大数据技术平台有很多,主要可以分为哪几类?

大数据的处理过程可以分为大数据采集、存储、结构化处理、隐私保护、挖掘、结果展示(发布)等,各种领域的大数据应用一般都会涉及到这些基本过程,但不同应用可能会有所侧重。对于互联网大数据而言,由于其具有独特完整的大数据特点,…

有哪些好的数据来源或者大数据平台?

分享下我自己平时收集的..共100多个O_O 网站分析类: 百度指数 - 以百度海量网民行为数据为基础的数据分享平台 Google趋势 - 了解 Google中热度上升的搜索 360指数 - 基于360搜索的大数据分享平台 Alexa - 网站排名 Google Analytics - Google出品,可…

大数据平台的软件有哪些?

查询引擎 一、Phoenix 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询。Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动。 Phoenix查询引擎会将SQL查询转换为一个或多个H…