07-7.5.1 散列表的基本概念

👋 Hi, I’m @Beast Cheng
👀 I’m interested in photography, hiking, landscape…
🌱 I’m currently learning python, javascript, kotlin…
📫 How to reach me --> 458290771@qq.com


喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑‍💻
感兴趣的小伙伴可以点一下订阅、收藏、关注!🚀
谢谢大家!🙏

散列表、散列函数

散列表(哈希表,Hash Table):是一种数据结构

  • 特点是:可以根据数据元素的关键字计算出它在散列表中的存储地址

散列函数(哈希函数)Addr = H(key)建立了 “关键字” -> “存储地址” 的映射关系

![[Pasted image 20240709171241.png]]

理想情况下,在散列表中查找一个元素的时间复杂度为 O ( 1 ) O(1) O(1)
查找元素 19:根据散列函数计算出元素的存储地址 = 19 % 13 = 6 =19\%13=6 =19%13=6

冲突、同义词

冲突(碰撞):在散列表中插入一个数据元素时,需要根据关键字的值确定其存储地址,若该地址已经存储了其他元素,则称这种情况为“冲突(碰撞)”

如何减少“冲突”?

  • 构造更适合的散列函数,让各个关键字尽可能地映射到不同的存储位置,从而减少“冲突”

那么,如何构造更适合的散列函数呢?

  • 拉链法(又称链接法、链地址法):把所有“同义词”存储在一个链表中
  • 开放定址法:如果发生“冲突”,就给新元素找另一个空闲位置

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

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

相关文章

指令v-el的作用是什么

在Vue.js的早期版本中(特别是Vue 1.x版本),v-el 指令被用来给元素注册引用信息(即DOM元素的引用)。这样,开发者就可以在Vue实例的方法中直接访问到这个DOM元素。然而,需要注意的是,从…

28.IP核理论知识(Xilinx)

(1)ip核是什么? IP(Intellectual Property)即知识产权,在半导体产业中,将IP核定义为“用于ASIC或FPGA中的预先设计好的电路功能模块”,简而言之,这里的IP即电路功能模块。…

Element轮播图组件切换太单调?手把手带你重写切换效果

前言: 最近在逛山东博物馆网站的时候,发现该网站主页淡入淡出的轮播图非常的优雅,所以就想来复刻一下,也算是对组件进行了二次的封装和修改 工具准备: Vue3Element Plus走马灯组件 注意事项: Element …

GPX文件的元素内容详解

GPX文件的来源 GPX文件(GPS eXchange Format)是一种用于存储GPS数据的开放标准格式,它可以包含航路点、轨迹和路线等信息。这些文件通常来源于GPS设备、户外活动追踪应用程序、地图服务或用户之间的数据共享。用户可以通过各种软件和硬件设备…

Python爬虫:基础爬虫架构及爬取证券之星全站行情数据!

爬虫成长之路(一)里我们介绍了如何爬取证券之星网站上所有A股数据,主要涉及网页获取和页面解析的知识。爬虫成长之路(二)里我们介绍了如何获取代理IP并验证,涉及了多线程编程和数据存储的知识。此次我们将在…

网络编程学习之tcp

按下*(星号)可以搜索当前光标下的单词。 Tcp编程的过程 打开网络设备 Bind:给服务地址把ip号和端口号连接进去 Tcp是有状态的 Listen是进入监听状态,看有没有客户端来连接服务器 Tcp比udp消耗过多资源 Upd类似于半双工&#…

D50SB100-ASEMI逆变焊机专用D50SB100

编辑:ll D50SB100-ASEMI逆变焊机专用D50SB100 型号:D50SB100 品牌:ASEMI 封装:DSB-5 批号:2024 现货:50000 正向电流(Id):50A 反向耐压(VRRM&#xf…

编程语言没落了?揭开真相的四大谜团、五大趋势、六大挑战与七大未来

编程语言没落了?揭开真相的四大谜团、五大趋势、六大挑战与七大未来 在科技飞速发展的今天,有人宣称编程语言已经没落,这一观点似乎让人困惑不已。然而,真相究竟如何?本文将从四个方面揭示编程语言的现状,…

【AIGC】二、mac本地采用GPU启动keras运算

mac本地采用GPU启动keras运算 一、问题背景二、技术背景三、实验验证本机配置安装PlaidML安装plaidml-keras配置默认显卡 运行采用 CPU运算的代码step1 先导入keras包,导入数据cifar10,这里可能涉及外网下载,有问题可以参考[keras使用基础问题…

echarts中tooltip添加点击事件代码示例

echarts中tooltip添加点击事件代码示例_javascript技巧_脚本之家 点击事件无法使用this 或者 this无法使用:

Qt图形编辑类使用总结

Qt的图形编辑通常会涉及以下三个类:QGraphicsView类、QGraphicsScene类及QGraphicsItem类。 QGraphicsView 是构建复杂图形用户界面的强大工具,尤其适用于那些需要动态更新、可交互的2D图形化应用程序,如图表绘制、流程图编辑器、游戏地图显示等等。通过结合使用 QGraphics…

13--memcache与redis

前言:数据库读取速度较慢一直是无法解决的问题,大型网站应对的方式主要是使用缓存服务器来缓解这种情况,减少数据库访问次数,以提高动态Web等应用的速度、提高可扩展性。 1、简介 Memcached/redis是高性能的分布式内存缓存服务器…

ret2csu简单总结

一个比较进阶的rop利用方式。 Why ret to csu? 当程序给的gadget不够,或者输入长度受限时,可以考虑利用csu中的众多gadget以及一个call指令来劫持控制流。 __libc_csu_init 汇编源码: .text:0000000000400790 ; void __fastcall _libc_c…

无人直播赚钱的底层逻辑是什么?一文揭晓!

当前,网络直播已经成为各类商家提高曝光和引流获客的主要渠道之一,这在为商家带来新机遇的同时,也让他们因人手不足或资金匮乏等原因而陷入无人问津窘境之中。在此背景下,无人直播软件一经出现,便引起了众多商家的关注…

多器官功能障碍综合征

多器官功能障碍综合征(Multiple Organ Dysfunction Syndrome,MODS)是指机体在遭受严重感染、创伤、休克、大手术等急性疾病过程中,同时或序贯发生两个或两个以上器官功能障碍,以致不能维持内环境稳定的临床综合征。 MO…

28V飞机库维修电源在飞机库中的作用

飞机库作为飞机停放和维护的重要场所,其设施的完善和电源系统的稳定运行是保证飞机正常运行的前提。随着我国航空事业的飞速发展,飞机维修行业面临着越来越大的挑战。在飞机维修过程中,电源系统作为关键组成部分,其稳定性和可靠性…

网络服务与应用-广域网技术(华为ip认证学习笔记)

网络服务与应用 FTP:文件传输协议 TCP 传输 20 端口发送,21 接收端口 1. 采用 C/S 结构 2. 传输模式 (1)ASCII 模式:传输文本 (2)二进制模式:传输非文本 3. 工作模式 (1&…

LeetCode题练习与总结:寻找旋转排序数组中的最小值--153

一、题目描述 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 …

【MIT 6.5840/6.824】Lab1 MapReduce

MapReduce MapReduce思想实现思路感受 6.5840/6.824 Lab与笔记汇总 本文对应的Lab版本为MIT6.5840-Spring2024的Lab1 本博客只提供思路,不会公开任何代码 本lab耗时约6h,码量约500行 MapReduce思想 MapReduce的思想属于是比较简单的,分为两…

3. 排序算法代码-python

目录 1.冒泡排序2.快速排序3.插入排序4.希尔排序5.选择排序6.堆排序7.归并排序8. 二分查找 1.冒泡排序 冒泡排序""" def BubbleSort(nums):listLength len(nums)while listLength > 0:for i in range(listLength - 1):if nums[i] > nums[i1]:nums[i], n…