算法笔记之哈希表、映射和集合(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']
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章