哈希表HashTable

散列表Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。

哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,复杂度O(1)

哈希表本质上是个数组,实现哈希表我们可以采用两种方法:

1、数组+链表

2、数组+二叉树

哈希函数

类似一个函数似的,给你一个值,经过某些加工得到另外一个值,就像这里的给你个人名,经过些许加工我们拿到首字母,那么这个函数或者是这个方法在哈希表中就叫做散列函数,其中规定的一些操作就叫做函数法则 

键值对,在jdk中就叫Entry

拉链法

刚刚小李和小王在索引1的位置发生了冲突,发生冲突的元素都被存储在链表中。 这样我们就可以通过索引找到小李和小王了

其实拉链法就是要选择适当的哈希表的大小,这样既不会因为数组空值而浪费大量内存,也不会因为链表太长而在查找上浪费太多时间。 

线性探测法

使用线性探测法,一定要保证tableSize大于dataSize。 我们需要依靠哈希表中的空位来解决碰撞问题。

例如冲突的位置,放了小李,那么就向下找一个空位放置小王的信息。

 

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

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

相关文章

Idea2023 Springboot web项目正常启动,页面展示404解决办法

Idea2023 Springboot web项目正常启动,页面展示404解决办法 问题: 项目启动成功,但是访问网页,提示一直提示重定向次数过多,404 解决方法 在IDEA的Run/Debug Configurations窗口下当前的Application模块的Working directory中添…

JS-项目实战-新增水果库存功能实现

1、fruit.js function $(name) {if (name) {//假设name是 #fruit_tblif (name.startsWith("#")) {name name.substring(1); //fruit_tblreturn document.getElementById(name);} else {return document.getElementsByName(name); //返回的是NodeList类型}} }//当…

浅谈电动汽车充电桩设计与应用研究

安科瑞 华楠 摘要:目前,随着我国社会经济的快速发展,我国的各个领域都取得了突破性的发展,尤其是在电动汽车充电桩的设计方法,新型的电动汽车充电桩设计已经广泛的受到了人民群众的青睐与认可,而这种发展前…

【网络编程】简述TCP通信程序,三次握手,四次挥手

文章目录 🎄TCP通信程序⭐打印字符串✨中文乱码问题🎈解决方法 🌺TCP三次握手🌺TCP四次挥手🛸其他 🎊专栏【网络编程】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 &#x1f386…

VC++添加包含目录

安装了QT;它带有很多例子; 新建一个工程,添加一个C++源文件,随便拷个例子的源码过来; 然后VS会提示头2个include语句出错; 因为找不到这两个头文件;这需要添加包含目录; 进入项目属性页;VC++目录 - 包含目录,它之前有2个系统的值;点击右侧的下拉箭头按钮,点…

基于Java GUI模拟银行自动取款机

一、课题描述 编写一个程序,模拟银行自动取款机的工作流程。主要功能如下所述: 当输入给定的卡号和密码(初始卡号为888888和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: 查询余额:初始余额为50000元 ATM取款:每次…

数据结构 栈与队列详解!!

一.栈 关于内存中的栈和数据结构中的栈是不同的,本章着重讲的是数据结构的栈。 这是一张关于栈的表达图。从图中可以看出栈很像是一副卡牌,发牌时只能从上取出,即出栈。 而入栈则是像你出牌后,要把你出的牌压在上一张出的牌上面。…

【算法基础】筛质数

文章目录 问题描述解决方法朴素筛法线性筛法 问题描述 给定一个正整数 n n n,请你求出 1 ∼ n 1∼n 1∼n 中质数的个数。 输入格式 共一行,包含整数 n。 输出格式 共一行,包含一个整数,表示 1∼n 中质数的个数。 数据范围 …

完美解决k8s master节点无法ping node节点中的IP或Service NodePort的IP

1、问题一 使用搭建好了K8S集群,先是node节点加入k8s集群时,用的内网IP,导致master节点无法操作node节点中的pod(这里的不能操作,指定是无法查看node节点中pod的日志、启动描述、无法进入pod内部,即 kubec…

【GCN】GCN学习笔记一

谱域图卷积 卷积 卷积定义离散空间的卷积 图卷积简介 卷积定理谱域图卷积实现思路如何定义图上的傅里叶变换拉普拉斯矩阵 (Laplacian Matrix)拉普拉斯矩阵的性质拉普拉斯矩阵的谱分解拉普拉斯矩阵与拉普拉斯算子 图傅里叶变换 图上的信号表示经典傅里叶变…

Python Web框架的三强之争:Flask、Django和FastAPI

JetBrains 公布 2022 Python 开发者调查结果。 完整报告地址:https://lp.jetbrains.com/zh-cn/python-developers-survey-2022/ 这是由 Python 软件基金会 (PSF) 和 JetBrains 共同开展的第六次官方年度 Python 开发者调查,回复于 2022 年 10 月至 12 …

2013年12月13日 Go生态洞察:Go在App Engine上的工具、测试和并发

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Java高级编程-----网络编程

网络通信协议 通过计算机网络可以实现多台计算机连接,但是不同计算机的操作系统和硬件体系结构不同,为了提供通信支持,位于同一个网络中的计算机在进行连接和通信时必须要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交…

mricorn 手动勾画ROI并保存为模版的方法步骤

mricorn软件手动勾画ROI: 这里拿一个做了切除手术的癫痫病人举例子,我们需要把切除区域勾画出来并保存成切除的模版。 1、将图像导入到mricorn中 2、逐层勾画ROI并填充 比较方便的是从切除区域的起始层进行勾画,这里为了方便展示只勾画中间…

计算机网络的OSI七层模型

目录 1、OSI七层模型是什么 1.1 物理层(Physical Layer) 1.2 数据链路层(Data Link Layer) 1.3 网络层(Network Layer) 1.4 传输层(Transport Layer) 1.5 会话层(S…

5款免费BI数据可视化工具,2023年最新精选推荐!

BI可视化工具顾名思义是进行数据分析和可视化的软件,旨在将数据以表格、图表、仪表盘等形式展示出来,让用户能够更加直观了解其业务状况、发现问题,并在必要时进行决策。   市面上BI数据可视化工具很多,目前比较火的像国外的Tabl…

CTF/AWD竞赛标准参考书+实战指南

随着网络安全问题日益凸显,国家对网络安全人才的需求持续增长,其中,网络安全竞赛在国家以及企业的人才培养和选拔中扮演着至关重要的角色。 在数字化时代,企业为了应对日益增长的攻击威胁,一般都在大量部署安全产品、…

uview-plus u-picker的defaultIndexs修改后无效的问题

uniapp项目中使用了uview-plus组件库,在使用u-picker组件时,发现其默认的选中属性 defaultIndex是一次性的,修改后无法响应,解决办法就是在u-picker源码中修改这个属性的watch,源码位置在uni_modules/uview-plus/components/u-pi…

Hive 定义变量 变量赋值 引用变量

Hive 定义变量 变量赋值 引用变量 变量 hive 中变量和属性命名空间 命名空间权限描述hivevar读写用户自定义变量hiveconf读写hive相关配置属性system读写java定义额配置属性env只读shell环境定义的环境变量 语法 Java对这个除env命名空间内容具有可读可写权利; …

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(十一)

COUNT() 计数函数 COUNT() 函数返回匹配指定条件的行数。 语法: 1.返回指定列的字段值条数 SELECT COUNT(column_name) FROM table_name;2.返回整表数据行条数 SELECT COUNT(*) FROM table_name;3.返回指定列去重后的字段值条数 SELECT COUNT(DISTINCT column_…