当前位置:网站首页>哈希表、无序集合、映射的原理与实现
哈希表、无序集合、映射的原理与实现
2022-07-23 20:02:00 【Adobee Chen】
哈希表(Hash table)又称散列表,是一种可以通过key直接进行访问的数据结构。
哈希表由两部分组成
- 一个数据结构,通常是链表、数组
- Hash函数,输入key返回数据结构的索引
例子:
hash_table["lies"]=233的例子,以各ASCII码相加mod20为Hash函数

如果其他的key经过hash函数计算也是放在9的位置,那么就会发生hash碰撞。
hash碰撞指的是两个不同的key被计算出同样的Hash结果,把复杂信息映射到小的值域,发生碰撞是不可避免的,好的Hash函数可以减少碰撞发生的机率,让数据尽可能的均衡分布
开散列是最常见的碰撞解决方案
- Hash函数依然用于计算数组下标
- 数组的每个位置存储一个链表的表头指针(我们称它为表头数组)
- 每个链表保存具有同样Hash值得数据
时间复杂度
期望:插入、查询、删除 O(1) ---------数据分布比较均匀时
最坏:插入、查询、删除O(N)-----------数据全部都被映射为相同得Hash值时
集合与映射
集合(set)存储不重复得元素
- 有序集合,便利时按元素大小排序,一般用平衡二叉搜索树实现,O(logN)
- 无序集合,一般用hash实现,O(1)
映射(map) 存储关键码(key)不重复的键值对(key-value pair)
- 有序映射,遍历时按照key大小排序,一般用平衡二叉搜索树实现,O(logN)
- 无序映射,一般用哈希表实现,O(1)
对于语言内置的类型(int,string),已经有默认的优秀的hash函数,可以直接放进set/map里使用
边栏推荐
- TASK03|回归
- 非局部均值滤波(NON-LOCAL-mean)/注意力机制
- Chinese [easy to understand] cannot be set when installing SVN localization package
- Meiker Studio - Huawei 14 day Hongmeng equipment development practical notes 5
- 使用Jmeter和VisualVW进行压测准备
- Leetcode 152. product maximum subarray (brute force cracking can actually pass!)
- QT With OpenGL(帧缓存篇)
- 2022/7/22 训练日志
- Adobe Acrobat两个强大的插件
- Atelier macoll - notes de développement de la secte de l'ours 2
猜你喜欢

解决1秒钟内,用户快速点击,重复请求的问题

New product listing | A-share floor derivatives market point

剑指 Offer II 115. 重建序列

小程序頭像組樣式

After the input error of next numerical data type () occurs, it can still be input normally next time

MongoDB-查询语句中$exists以及结合$ne、$nin、$nor、$not使用介绍

今日睡眠质量记录81分

数仓4.0笔记——数仓环境搭建—— DataGrip准备和数据准备

百度地图数据可视化
![[unity project practice] level unlocking](/img/14/a12ad9aa7741599222aa4db8688713.png)
[unity project practice] level unlocking
随机推荐
[unity project practice] level unlocking
牛客C基础题练习
数组——209.长度最小的子数组
【问题处理】Merge made by the ‘ort‘ strategy.
【AR学习】-- 二、 环境搭建
海通证券股票开户怎么样安全吗
Discussion on the usage of scanf () and getchar ()
种树最好的是现在
数组——704. 二分查找
如何给电脑系统重置系统?方法其实很简单
did you register the component correctly
Leetcode 209. subarray with the smallest length
17.生命周期
Edge cloud | 1. overview
Adobe Acrobat两个强大的插件
华泰证券低佣金开户链接安全吗,怎么办理低佣金
链表——203. 移除链表元素
【力扣】最接近的三数之和
2022山东养老展,中国国际养老服务业展览会,济南老龄产业展
MongoDB-查询语句中逻辑运算符not、and、or、nor用法介绍