map补充

map又称为hash map,在算法上基于hash实现key的映射和寻址;在数据结构上基于桶数组实现key-value键值对的储存

hash

译作散列,属于压缩映射,压缩过程中存在部分信息的遗失,因此这种映射关系具有不可逆的特质

(1)hash的可重入性:相同的key,必然产生相同的hash值

(2)hash的离散型:重要两个key不相同,不论其相似度的高低,产生的hash的值都会在整个输出域内均匀的离散化

(3)hash的单向性:企图通过hash值反向映射回key是无迹可寻的

(4)hash冲突:由于输入与(key)无穷大,输出域(hash值)有限,因此必然存在不同key映射到相同hash值的情况,称之为hash冲突

hash冲突

开放寻址法

如果遍历到链表尾部,仍然没有空位,则基于拉链法续接新桶

拉链法

方法

优点

拉链法

简单常用,无需预先为元素分配内存

开放寻址法

无需额外的指针;地址完全连续,可以基于局部性原理,充分利用CPU高速缓存

扩容

(1)扩容分增量扩容和等量扩容

(2)每个桶固定可以存放八个键值对

(3)采用渐进迁移,每当桶被实际操作到时都迁移一部分的元素到新桶中,避免因为一次性的大量数据迁移引发性能抖动

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值