算法笔记之哈希表、映射和集合(Python)

哈希表、映射和集合

1.哈希表概念(Hash table)
(1)哈希表(Hash table),也称为散列表,是根据关键码值(key value)而直接进行访问的数据结构。
(2)它通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。
(3)这个映射函数叫做散列函数(Hash Function),存放记录的数据叫做哈希表(或散列表)。

2.实践应用
(1)电话号码簿
(2)用户信息表
(3)缓存(LRU Cache)
(4)键值对存储(Redis)

3.哈希函数
(1)哈希函数示意图
在这里插入图片描述
(2)出现冲突的情况
在这里插入图片描述注:拉链式解决冲突法,如果哈希函数设计的好,查询的时间复杂度就是O(1)。

(3)完整结构示意图
在这里插入图片描述
4.哈希表时间复杂度分析
哈希表的时间复杂度,平均来说,如果哈希函数设计的好,发生冲突的情况非常少,操作的时间复杂度一般为O(1),但是,如果哈希函数设计的不好,出现很多冲突的情况,那么最差的情况下,时间复杂度则退化为O(n)。
在这里插入图片描述
5.Python实现
(1)列表——list

#list
List1 = [1,2,3,4]

(2)字典——dict

#dict
map_x = {'张三':80,'李四':92,'王二':79}

(3)集合——set

#set
set_x = set(['jack','anna','lucy','tom','jack','tom']) 
#此时,set_x = ['jack','anna','lucy','tom']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值