数据结构--哈希表,哈希函数(或者散列表、散列函数)

 目录

哈希表的定义

处理冲突的方法--拉链法 

散列查找

常见的散列函数(构造哈希函数)

除留余数法

直接定址法

 数字分析法

平方取中法

处理冲突的方法--开放定址法

(1)线性探测法: 

(2)平方探测法

(3)伪随机序列发 

处理冲突的方法--再散列法 

总结 


 哈希表的定义

处理冲突的方法--拉链法 

散列查找

圈出来部分,分别是除了第一层查找1次,其他每个元素查找次数 

 

装填因子a=表中记录数/散列表长度

 

常见的散列函数(构造哈希函数)

除留余数法

直接定址法

 数字分析法

平方取中法

 

处理冲突的方法--开放定址法

 

(1)线性探测法: 

 把元素1放到数组2位置,然后接着算68,20....

  

 68和20按照哈希函数取余,分别是3,7,而数组下标3,7还没有存放与元素,所以没有冲突,可以直接放进数组对应的下标里面,如图:

接着放84时,按照哈希函数取余时6,6已经有元素放了,所以按照线性推测法 公式算,依次往后找,找到8下标没有元素,所以84放到下标8那里

存放84的结果如下:

 

然后是27: 

 

存放27的结果

 

删除操作 

 

 

(2)平方探测法

 

 

(3)伪随机序列发 

 

 存放结果:

处理冲突的方法--再散列法 

总结 

装填因子,线性探测法很重要

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/82295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mall商城项目:只启动mall-admin情况下Windows环境的部署

文章目录 前提ideaMysql创建数据库mall,导入项目document/sql文件夹下的mall.sql文件,初始化数据RedisPostMan登录接口测试运行前提 mall项目gitee 如果项目只启动mall-admin,仅需安装MySQL、Redis即可 idea IDEA的安装与使用请参考搜索插件仓库,安装插件Lombok;将项目下…

记录--IR_cut切换模块流程

api接口:/API/ChannelConfig/ImageControl/Set /API/ChannelConfig/ImageControl/range /API/ChannelConfig/ImageControl/Get IR_cut步骤(已自动模式为例): 1、一直跑IRCutService线程,检查环境光敏值 2、光敏值达…

laravel框架 - 辅助函数

Laravel 常用辅助函数 辅助函数 Laravel 包含各种全局辅助函数。 laravel 中包含大量辅助函数,您可以使用它们来简化开发工作流程。 array_dot() 辅助函数允许你将多维数组转换为使用点符号的一维数组 $array [user > [username > something],app > [c…

速腾聚创80线激光雷达ros驱动安装

1. 激光雷达硬件连接 1.1 工具准备 1.2 硬件连接 设置PC Ubuntu1804静态IP,速腾聚创16线激光雷达出厂默认发送到192.168.1.102,在连接前可以通过wireshark抓包工具进行检测; sudo wireshark 正常发送UDP数据流才算正常接入! 2. 软…

使用C#为进程创建DUMP文件

https://www.likecs.com/show-307694293.html 程序异常崩溃前使用此类为进程创建DUMP文件,之后可以使用WinDbg等工具进行分析。 辅助类代码 using System; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices;namespace Infrastruc…

C语言入门Day_22 初识指针

目录 前言: 1.内存地址 2.指针的定义 3.指针的使用 4.易错点 5.思维导图 前言: 之前我们学过变量可以用来存储数据,就像一个盒子里面可以放不同的球一样。 这是一个方便大家理解专业概念的比喻。 在计算机世界里面,数据实…

怎么防止360安全卫士修改默认浏览器?

默认的浏览器 原先选项是360极速浏览器(如果有安装的话),我这里改成了Chrome。 先解锁 才能修改。

docker alpine镜像中遇到 not found

1.问题: docker alpine镜像中遇到 sh: xxx: not found 例如 # monerod //注:此可执行文件已放到/usr/local/bin/ sh: monerod: not found2.原因 由于alpine镜像使用的是musl libc而不是gnu libc,/lib64/ 是不存在的。但他们是兼容的&…

千巡翼X1 让航测无人机更小更轻更高效

利用无人机进行航空摄影测量,已成为测绘外业生产的主要方式,不仅方便快捷,更能全面准确获得成果。近年来,凭借快速高效、机动灵活、安全可靠、低成本等诸多优势,小型多旋翼无人机逐渐成为一些航测项目作业的新利器。 千…

成绩判定(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

GEE学习总结(9)——像元二分法计算月度植被覆盖度(MODIS)

像元二分法计算植被覆盖度 通过MODIS的NDVI数据集MOD13Q1和像元二分法计算植被覆盖度 var multi_NDVI ee.ImageCollection(MODIS/006/MOD13Q1).filterDate(2015-06-01, 2016-09-01).select(NDVI).max().divide(10000).clip(geometry);var ndviVis {min: 0.0,max: 1,palette…

Redis——渐进式遍历和数据库管理命令

介绍 如果使用keys * 这样的操作,将Redis中所有的key都获取到,由于Redis是单线程工作,这个操作本身又要消耗很多时间,那么就会导致Redis服务器阻塞,后续的操作无法正常执行 而渐进式遍历,通过多次执行遍历…

【PowerQuery】PowerBI Pro账户的自动刷新

在数据和模型通过发布或者上传方式上传到PowerBI Pro中,如何来进行数据刷新呢?数据源依然在本地,而数据模型已经发布到PowerBI Pro云端服务中。如果数据源更新,我们的模型如何进行自动刷新呢? PowerBI Pro如果需要基于本地数据源更新进行模型更新需要部署相应的数据网关服…

智能合约漏洞案例,Euler Finance 1.96 亿美元闪电贷漏洞分析

智能合约漏洞案例,Euler Finance 1.96 亿美元闪电贷漏洞分析 2023 年 3 月 13 日上午 08:56:35 UTC,DeFi 借贷协议 Euler Finance 遭遇闪电贷攻击。 Euler Finance 是一种作为无许可借贷协议运行的协议。其主要目标是为用户提供各种加密货币的借贷便利。…

斯里兰卡投资促进部中国招商大使率考察团到访深兰科技

9月13日,来华访问的斯里兰卡投资促进部政府考察团,在斯里兰卡投资促进部中国招商大使吴克向的率领下,到访深兰科技集团,并与深兰科技集团董事副总裁刘园桂等进行了会谈。 考察团随行人员包括Sri Lanka Sithara Limited公司总裁Mr.…

VisualBox QA

出现提示注册表错误,或者之前正常,重启VisualBox后,VM运行失败时,可通过正确卸载VisualBox,然后使用注册表清理软件(CCleaner)清理注册表后,重装VisualBox,即会正常。(一般用这个能解…

Unity WebGL 编译 报错: emcc2: error: ‘*‘ failed: [WinError 2] ϵͳ�Ҳ���ָ�����ļ���解决办法

文章目录 错误日志可能的原因及解决办法:导出路径不能有中文系统名(win)含有中文, 修改环境变量Temp和Tmp, 如下图:真正的原因: 杀毒软件删除了部分wasm相关文件,如: 错误日志 Building Library\Bee\artifacts\WebGL\build\debug_WebGL_wasm\build.js failed with output: emc…

【WFA】【Enhanced open】CT_OWE_DHgroup_STA_NoAssociation-AllGroupsRejected_10338_1

测试报告如下: Fail的关键log: 当连接到ap失败时,驱动程序将尝试连接到ap。如果ap仅支持Group 20,并且sta支持Group 19、20。sta将首先尝试Group 19,ap将通过状态代码77拒绝它。然后驱动程序将尝试连接Group 19的ap,仍然达到最大重试次数。那么sta将尝试第Group 20 。 …

刷一下算法

记录下自己的思路与能理解的解法,可能并不是最优解法,不定期持续更新~ 1.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容…

2023-09-18 LeetCode每日一题(打家劫舍 III)

2023-09-18每日一题 一、题目编号 337. 打家劫舍 III二、题目链接 点击跳转到题目位置 三、题目描述 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。 除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦…