数据结构:哈希表(Hash table)

目录

1.概念

2.示例(将0-100数据存放到哈希表中)

3.应用


1.概念

哈希表(Hash table,也叫散列表、非线性表),是根据关键码值(Key value)而直接进行访问的一种高效的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做哈希表。

给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。

①.哈希 :本质是一种算法思想、将数据根据哈希算法映射成键值,根据键值来写入或是査找数据,以实现査找数据O(1)时间复杂度

②.哈希碰撞(哈希冲突):多个数据通过哈希算法映射成同样的键值,说明产生哈希冲突【解决方法:链地址法】【若不发生哈希冲突,哈希的时间复杂度为O(1)】

③.链地址法 :数据产生哈希冲突通过在同一键值位置用链表实现多个数据的存储

提示 :现实中哈希函数是需要构造的,并且构造的好才能使用的好。

2.示例(将0-100数据存放到哈希表中)

①数据类型


②创建:
③在哈希表中插入一个数据(无头链表)


④显示哈希表中所有数据


⑤查找哈希表中单个数据


⑥销毁哈希表

3.应用

由于哈希表的特殊性质,其在安全加密(是现代密码体系中的一个重要组成部分),数据校验,唯一标识,负载均衡等场景都有着不可替代的作用。

相关推荐
像污秽一样12 小时前
算法设计与分析-习题8.2
数据结构·算法·排序算法·dfs·化简
玛卡巴卡ldf12 小时前
【LeetCode 手撕算法】(子串) 560-和为 K 的子数组
java·数据结构·算法·leetcode
不想看见40412 小时前
Rotate Image数组--力扣101算法题解笔记
数据结构·算法
仰泳的熊猫12 小时前
题目 2304: 蓝桥杯2019年第十届省赛真题-特别数的和
数据结构·c++·算法·蓝桥杯
像污秽一样13 小时前
算法设计与分析-习题4.3
数据结构·算法·排序算法
沈阳信息学奥赛培训13 小时前
C++ 指针* 和 指针的引用 *& (不是指针和引用,是指针的引用)
数据结构·c++·算法
YY_Share13 小时前
vim 清空文本内容指令
linux·编辑器·vim
会编程的土豆13 小时前
【数据结构与算法】 树
数据结构·算法
LSL666_13 小时前
Redis值数据类型——hash
redis·算法·哈希算法·数据类型
喵喵蒻葉睦13 小时前
力扣 hot100 滑动窗口最大值 单调双端队列 java 简单题解
java·数据结构·算法·leetcode·双端队列·滑动窗口·队列