哈希表、映射和集合
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']
本文深入探讨了哈希表的基本概念,包括其工作原理、时间复杂度分析及在电话簿、用户信息表等场景的应用。同时,文章还介绍了哈希函数的作用、冲突解决策略,并提供了Python中哈希表的实现示例。
1944

被折叠的 条评论
为什么被折叠?



