数据结构-散列表

列表(Hash Table),又称哈希表,是一种数据结构,特点是:数据元素的关键字与其存储地址直接相关
例:有一堆数据元素,关键字分别为{19,14,23,1,68,20,84,27,55,11,10,79},散列函数H(key)=key%13
若不同的关键字通过散列函数映射到同一个值,则称它们为“同义词”
通过散列函数确定的位置已经存放了其他元素,则称这种情况为“冲突”
image.png
用拉链法(又称链接法、链地址法)解决‘冲突’:把所有“同义词”存储在一个链表中

散列查找

image.png
image.png
image.png
image.png

image.png
image.png
image.png
image.png

常见的散列函数

设计目标–让不同关键字的冲突尽可能地少
除留余数法—H(key)=key%p
散列表表长为m,取一个不大于m但最接近或等于m的质数p
质数又称素数。指除了1和此整数自身外,不能被其他自然数整除的数
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

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

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

查找操作

image.png
image.png
image.png
image.png
image.png
image.png

删除操作

image.png
image.png
image.png

查找效率分析(ASL)

image.png
image.png
image.png

平方探测法

image.png
image.png
image.png
image.png

伪随机序列法

image.png
image.png
image.png
image.png

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

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

相关文章

Ansys Lumerical | 用于增强现实系统的表面浮雕光栅

在本示例中,我们使用 RCWA 求解器设计了一个斜面浮雕光栅 (SRG),它将用于将光线耦合到单色增强现实 (AR) 系统的波导中。光栅的几何形状经过优化,可将正常入射光导入-1 光栅阶次。 然后我们将光栅特性导出为 Lumerical Sub-Wavelength Model …

【NI-DAQmx入门】触发相关

触发概述 触发采集为用户提供了两个主要好处:它对输入信号相对于触发事件进行计时,因此用户仅捕获感兴趣区域中的信号,从而节省硬件带宽和内存。 模拟触发和数字触发 模拟触发和数字触发的区别在于触发源的不同。数字触发是一种 TTL 信号&am…

压测工具主要功能是什么?该怎样选择?

压测工具是一类用于模拟并评估系统在不同负载条件下的性能的软件应用程序。通过模拟大量用户同时访问系统,压测工具能够帮助开发者识别系统的瓶颈、性能瓶颈以及潜在的故障点。这种实时、模拟的方式允许开发者在正式投入使用之前发现并解决问题,提高系统…

数据库操作入门:PyMongo 和 MongoDB 的基本用法

MongoDB MongoDB是一种流行的NoSQL数据库,它将数据存储在类似JSON的文档中,使数据库非常灵活和可扩展 PyMongo Python需要一个MongoDB驱动程序来访问MongoDB数据库。在本教程中,我们将使用MongoDB驱动程序 “PyMongo”。建议使用PIP来安装…

基于JavaWeb+SSM+Vue微信小程序校园兼职任务平台系统的设计和实现

基于JavaWebSSMVue微信小程序校园兼职任务平台系统的设计和实现 源码传送入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 随着社会的发展和全球疫情的冲击,大学生的就业形势越来越严峻。越…

数据结构与算法【递归】Java实现

递归 递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集。 特点: 自己调用自己,如果说每个函数对应着一种解决方案,自己调用自己意味着解决方案是一样的(有规律的)每次调用&#xf…

算法——滑动窗口

什么是窗口?就是符合题目要求的区域内的数据,将每次符合数据的窗口内的数据记录下来,然后将窗口后移,寻找其他符合要求的数据,每次进入窗口和退出窗口都需要一定的要求 一、长度最小的子数组 LCR 008. 长度最小的子数…

element el-upload上传功能

2023.11.14今天我学习了如何使用el-upload: <!--drag设置可拖动--><!--accept".xlsx"设置上传的文件类型--><!--:limit1上传文件的最大个数--><!--:auto-upload"false"是否在选取后直接上传--><!--:before-upload"beforeU…

城市内涝对策,万宾科技内涝积水监测仪使用效果

随着城市化进程的加速&#xff0c;城市道路积水问题明显越来越多&#xff0c;给人们的出行和生活带来更多的不便。内涝积水监测仪作为高科技产品能够实时监测道路积水情况&#xff0c;为城市排水系统的管理和维护提供重要的帮助。 在城市生命线的基础设施规划之中&#xff0c;地…

第三天课程 RabbitMQ

RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&am…

python数据结构与算法-02_数组和列表

线性结构 本节我们从最简单和常用的线性结构开始&#xff0c;并结合 Python 语言本身内置的数据结构和其底层实现方式来讲解。 虽然本质上数据结构的思想是语言无关的&#xff0c;但是了解 Python 的实现方式有助于你避免一些坑。 我们会在代码中注释出操作的时间复杂度。 数…

LeetCode【923】三数之和的多种可能性

题目&#xff1a; 思路&#xff1a; https://www.jianshu.com/p/544cbb422300 代码&#xff1a; int threeSumMulti(vector<int>& A, int target) {//Leetcode923:三数之和的多钟可能//initialize some constint kMod 1e9 7;int kMax 100;//calculate frequenc…