一、数据结构里的基础哈希
1、1解决冲突
1、1、1、separate chaining(分离链接法)
1、1、2、open-addressing(开放地址法)
常用的又有三种:
聚集 | 公式 | |
linear probing:线性探测 | 一次聚集 | pos(k)=h(k)+i*c |
quadratic probing:平方探测 | 二次聚集 | pos(k)=h(k)+i^2 |
double hashing:双散列 | 无 | pos(k)=h(k)+i*g(k) |
ps:i为探测的次数,c为常数 ,都默认取余(即pos不会超过哈希表的大小),g(k)为再散列哈数
1、2常用的函数
(代码实现,先挖坑,看了看资料,都不是很满意)
1、3再散列
思想:哈希表快满了,把当前哈希表扩容成两倍
快满的界限:
1、数据大小为表大小的一半
2、插入失败
3、装填因子达到某一个值
二、STL
即优先级是unordered_map,按照自己的需求,初始化就可。
常用函数:
insert();
find();
clear();
swap();