当前位置: 首页 > news >正文

408第一季 - 数据结构 - 散列表

散列表

概念

散列表本身就是为了查找

原始人思想

散列表思想

6%5 是 1

1%5 也是1 冲突

冲突怎么办?

线性探测法

就往后找,1跑到索引为2

然后查找,可以发现,只要没冲突就只用查找1次

然后你想找10的话,发现索引为0的地方什么都没有,所以查1次为空就结束

然后这个方法空间用的多,但查的快

然后这里失败情况解释一下

1是%之后为0的情况

3是%之后为1的情况,也就是说要往后找3次才看见空

这上面是没有循环的情况下的

当然,这个表是可以循环的,比如我们想插个24,就会到索引为0这里,查找的话也一样

删除

这里把9删了的话,4就查不到了,怎么办

那就可以把9下面弄个False,变成逻辑删除就行,并不是真正的删除

然后还有二种散列表存放的方法

上面这些ab上面的都是题目会给你的

然后还要一些处理冲突的方法

这写的什么玩意,具个例子就知道了

这里9占了索引为4的之后,4不得不去索引为5的地方

因此索引为5的本来是为所有余数为5的数开放,但现在余数为4的也放进去了,所以就是上面说的即向同义词开放,也对非同义词开放

拉链法

这种不仅要串起来,还会排个序,不过也可以不排序

线性探测法的小例子

这里第2行是余数,第三行是查找次数

然后是找失败的,找空位置

装填因子

装填因子就是看表放的多满,这里4/7

 散列函数如果是对2取余肯定比对100取余更容易发生冲突

做题

1

2

这里到索引为4的时候,是逻辑删除,并不是真正的删除,所以还得往后查找,查找到索引0是空,所以查找了2次

c

http://www.xdnf.cn/news/1045909.html

相关文章:

  • arcpy数据分析自动化
  • RFC4291-IPv6地址架构
  • Spring MVC 会话管理实践教程:HttpSession 深入应用
  • 模板方法模式Template Method Pattern
  • Flink CDC MySQL 时区相差 8 小时问题优雅解决方式
  • 6月15日星期日早报简报微语报早读
  • React 中除了react-router还有哪些路由方案
  • 深度学习——基于卷积神经网络实现食物图像分类【2】(数据增强)
  • Office Word MCP 使用指南(小白版)
  • PCB设计教程【大师篇】stm32开发板PCB布线(电源部分)
  • 最近的一些思考与总结-优化版
  • qt信号与槽--02
  • XR-RokidAR-UXR3.0-Draggable 脚本解析
  • 如何高效的学习算法与数据结构
  • React 实现砸金蛋游戏
  • webpack+vite前端构建工具 - 1为什么要构建工具 2webpack基础配置
  • Nginx全面深入学习目录
  • gradle在build时时如何知道要去扫描Realm相关的数据模型类的?
  • 4.查看、删除数据库
  • 数据库核心技术深度剖析:事务、索引、锁与SQL优化实战指南(第五节)----数据库事务
  • LeetCode第 454 场周赛题解
  • 【git】如何在team里使用公共账号进行ssh clone
  • leetcode25-K个一组翻转链表
  • 【Zephyr 系列 27】自定义 Shell 命令框架:打造自己的控制台命令系统
  • 数据结构 排序
  • 【狂飙AGI】第6课:前沿技术-文生图(系列2)
  • 无人机仿真时在px4包外自己的工作空间中编辑px4有关launch文件的方法
  • 小记:把react项目从web迁移到electron
  • ubuntu 22.04 安装部署elk(elasticsearch/logstash/kibana) 7.10.0详细教程
  • 【嵌入式ARM汇编基础】-快速了解ARM汇编语言