散列表(哈希表)

article/2025/6/27 5:42:53

1 散列表的引入


如果我们叭者几个学生按照顺序存储存入到下面这个数组的话,那么每一次的查找方法只有顺序查找或者折半查找,最低的时间复杂度也就只可以下降到(logn),但是时间复杂度还是可以下降,下降到O(1)

我们只要把对应的学号当成对应的数组小标,然后按照学号放入到数组下标就可以找到对应的学生,这样时间复杂度为O(1)

这个表就是散列表,也叫哈希表

2 散列表的散列函数

散列函数分为两种函数
1 直接定制法
f( x ) = kx + b f( x ) = a这种
 


这种方法一般是用到关键字一般都是基本连续的情况,否则会浪费大量的空间

2 除留余数法


我们可以运用除留余数法来进行映射到对应的位置,但是这方法很容易发生冲突,也就是哈希冲突,当我们P可以设置成小于等于表长的最大质数

装填因子就是表中的元素 / 表长 = 装填因子,装填因子越大的话,冲突可能性会更大
装填因子越笑,肯可能越小,但是空间浪费就比较高,所以我们可以指定这个装填因子的大小来设计我们的表

3 应对哈希冲突的方法

当我们进行删除操作的时候,要标记为删除的标记,初始化的标记与删除的标记不一样,删除的标记是你下一次填入值还可填入,查找的时候不会断层

1 线性探测法
 


我们根据我们设计的求余,对应到对应的表格位置,然后把数字放入进去,然后当下一次数字放的时候冲突了,就往后面进行走,走到没有放置的位置,如果从7开始走到11都没有位置就走到0开始放入,找一个空闲的位置

ASL的计算
 


ASL成功 = (1 + 7 + 1 + 2 + 1 + 2 + 1 + 4 + 4)/ 9 = 23 / 9

ASL失败 = (3 + 2 + 1 + 1 + 3 + 2 + 1 + 8 + 7 + 6 + 5) / 11 = 39 / 11

注意为什么要除以11,这里的11是表示的为哈希表所映射的范围
但是这种方法容易发生聚集的现象,就是把很多的数字放到一起

2 平方探测法

就是没放一个数字,如果放生冲突就按照上面给我们数字的顺序给key加值,这样就可以放到各个不同的位置

3 拉链法


就是在对应的位置构建一个链表,这样就可以避免很多的冲突,这里是可以删除对应的元素的


http://www.hkcw.cn/article/LFFZCatOBl.shtml

相关文章

【基于阿里云搭建数据仓库(离线)】Data Studio创建资源与函数

Data Studio支持在您的数据分析代码中引用自定义的资源和函数(支持MaxCompute、EMR、CDH、Flink),您需要先创建或上传资源、函数至目标工作空间,上传后才可在该工作空间的任务中使用。您可参考本文了解如何使用DataWorks可视化方式…

【计算机网络】第3章:传输层—拥塞控制原理

目录 一、PPT 二、总结 (一)拥塞的定义 (二)拥塞产生的原因 (三)拥塞控制的目标 (四)拥塞控制方法分类 1. 端到端拥塞控制 2. 网络辅助拥塞控制 (五)…

嵌入式鸿蒙开发环境搭建操作方法与实现

Linux环境搭建镜像下载链接: 链接:https://pan.baidu.com/s/1F2f8ED5V1KwLjyYzKVx2yQ 提取码:Leun vscode和Linux系统连接的详细过程1.下载Visual Studio Code

结构型设计模式之装饰模式

文章目录 1. 装饰模式概述2. 模式结构3. 装饰模式与继承的区别4. 装饰模式的优缺点优点缺点 5. C#代码示例5.1 基本示例 - 饮料与调料5.2 更复杂的示例 - 文本格式化器 6. C#中装饰器模式的实际应用6.1 C# I/O 流处理6.2 ASP.NET Core 中间件 7. 装饰模式与其他设计模式的比较8…

开发的几种格式,TCP的十个重要机制

自定义协议中, 我们有几种常见的数据格式: 1.xml 通过标签来组织数据 请求: 优势: 让数据的可读性变更好了 劣势: 标签非常繁琐,传输的时候也占用更多网络带宽(maven会使用xml来管理项目配…

ASP.NET Core OData 实践——Lesson9绑定和未绑定的Function和Action(C#)

大纲 概念支持的接口主要模型设计控制器设计数据源FunctionBound FunctionUnbound Function重载(overload) ActionBound ActionUnbound Action重载(overload)Bound ActionUnbound Action 主程序服务文档模型元文档 代码地址参考资…

描述性统计——让数据说话

第03篇:描述性统计——让数据说话 写在前面:大家好,我是蓝皮怪!前两篇我们聊了统计学的基本概念和数据类型,这一篇我们要正式进入数据分析的第一步——描述性统计。别被名字吓到,其实就是用一组数字&#x…

【MySQL基础】库的操作:创建、删除与管理数据库

MySQL学习: https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言: 在上一篇我们已经讲解了数据库的基本内容,相信大家对数据库已经有了一些自己的理解,从这篇开始我们就开始正式进入如何…

国足抵达雅加达备战世预赛 力争两连胜晋级希望

中国男足国家队于6月2日晚抵达印度尼西亚首都雅加达,准备参加5日举行的2026美加墨世界杯亚洲区预选赛18强赛第9轮对阵印尼队的比赛。当地时间晚上10时30分,中国队在主教练伊万科维奇的带领下走出雅加达苏加诺-哈达国际机场,随后乘坐大巴前往酒店。伊万科维奇表示,中国队在…

中国龙舟文化“划”向全世界

央视网消息:这个端午假期,热气腾腾的“端午经济”成为消费活力升级的缩影。“国潮”风引领文化消费新风尚,传统文化元素与现代技术交融,非遗体验“烟火气”满满,打造出独特的“国潮端午”氛围,持续火热的国潮消费也一路“火”到了海外。这段时间,在义乌国际商贸城做3D打…

马斯克宣布离职:不想为政府政策负责 “政府效率部”成替罪羊

埃隆马斯克在接受美国哥伦比亚广播公司采访时提到,他并不想公开反对美国政府,但也不愿意为政府所做的一切承担责任。他表示,他领导的“政府效率部”成了所有问题的替罪羊,无论是真是假的裁员都归咎于这个部门。马斯克还表示,他对国会共和党正在讨论的数万亿美元减税与支出…

韩国5名候选人竞逐总统 李在明领跑民调

韩国第21届总统大选于当地时间6月3日6时正式开始,全国共设有14295个投票站。没有参加提前投票的选民凭本人身份证件前往指定投票站即可参加投票,投票将于当日20时结束。本次大选共有7位候选人进行了登记,但其中两位先后宣布退出,并表示支持国民力量党候选人金文洙。因此,选…

学者:李在明若胜将大幅调整外交政策 韩国大选临近决策点

韩国总统大选即将于3日迎来正式投票。根据选前多项民调结果,共同民主党候选人李在明仍以明显优势领先国民力量党的金文洙和改革新党的李俊锡。金文洙与李俊锡合并无望的情况下,李在明距离总统宝座仅一步之遥。2日举行的选前最后一场记者会几乎成为了李在明的“总统政策说明会…

2025/6月最新Cursor(0.50.5版本)一键自动更换邮箱无限续杯教程

使用前检查: 使用前请先看左下角,是否获取到Cursor的版本号 如果没有请先在 功能页面 -→ 自定义Cursor路径 选择你Cursor的安装的路径,并开启后重启YCursor,获取到版本后才能正常使用功能 检查软件左下角的权限标识是否为绿色 如…

算法:二分查找

1.二分查找 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 二分查找算法要确定“二段性”&#xff0c;时间复杂度为O(lonN)。为了防止数据溢出&#xff0c;所以求mid时要用防溢出的方式。 class Solution { public:int search(vector<int>& nums, int tar…

Elasticsearch 读写流程深度解析

在数据驱动的数字化浪潮中&#xff0c;Elasticsearch 凭借其毫秒级搜索响应与水平扩展能力&#xff0c;已成为现代数据架构的核心引擎。本文将深入剖析其读写流程的设计思想、实现细节与工程权衡&#xff0c;揭示这一分布式系统的精妙架构。 一、 架构基石&#xff1a;分布式设…

2024年第十五届蓝桥杯Scratch10月stema选拔赛真题——数字卡片排序

2024年第十五届蓝桥杯Scratch10月stema选拔赛真题——数字卡片排序 题目可点下面去处&#xff0c;支持在线编程~ 数字卡片排序_scratch_少儿编程题库学习中心-嗨信奥 程序演示可下下面去处&#xff0c;支持获取素材和源码~ 数字卡片排序-scratch作品-少儿编程题库学习中心-嗨…

基于遥感图像深度学习的海洋测深

知识星球&#xff1a;数据书局。打算通过知识星球将这些年积累的知识、经验分享出来&#xff0c;让各位在数据治理、数据分析的路上少走弯路&#xff0c;另外星球也方便动态更新最近的资料&#xff0c;提供各位一起讨论数据的小圈子 1. 摘要 沿海开发和规划面临的问题&#…

《使命召唤》防线失守:系列多款游戏被破解,黑客公开源代码 堡垒首次被突破

每当一款新游戏在PC平台发售,如果未使用Denuvo加密技术,破解者们就会竞相争夺首个破解该作品的机会。例如,《漫威蜘蛛侠 2》和《最后生还者 2》分别在发售后不到两分钟和一天内被破解。长期以来,《使命召唤》系列因其独特的数字版权管理技术和始终在线的网络连接而被视为难…

男子端午节爬野山迷路,还执意自己找路!27人冒雨搜山救援 公益救援彰显大爱

5月31日端午节,在北京房山的一处野山中,一名男子登山迷路却不想麻烦救援队,坚持要自己摸索下山。男子曾向警方询问下山道路,但拒绝了蓝天救援队的帮助。然而不久后,他再次联系救援队请求援助,称自己过于自信,但找不到路。尽管被困男子最初未请求救援,房山蓝天救援队出于…