哈希表梳理

研究背景:一些排序,如快排或计数排序造成了大量的空间被浪费掉

哈希表定义:存放数据的集合——>哈希表中元素是无序的,不可重复的

应用背景:判断一个元素是否在此之前出现过,并优化

核心思想:将[0,m)上的值映射到[0,p)上,以节省数据存储空间,哈希表是多对一的映射方式。

哈希表的精髓:空间压缩

哈希表和常用,也很好用,划重点

哈希表的两种实现方式:开散列方法( open hashing,也称为拉链法,separate chaining )和闭散列方法( closed hashing,也称为开地址方法,open addressing )。他们也是解决hash冲突的方法

冲突解决策略

尽管散列函数的目标是使得冲突最少,但实际上冲突是无法避免的。因此,我们必须研究冲突解决策略。
      冲突解决技术可以分为两类:开散列方法( open hashing,也称为拉链法,separate chaining )和闭散列方法( closed hashing,也称为开地址方法,open addressing )。

开散列与闭散列的不同之处在于:

开散列法把发生冲突的关键码存储在散列表主表之外;

而闭散列法把发生冲突的关键码存储在表中另一个槽内。

开、闭散列的应用:lua 是闭散列的,go 是开散列的

猜你喜欢

转载自blog.csdn.net/xiu351084315/article/details/82181113