哈希表

哈希表

哈希表

哈希表 也叫 散列表
哈希表是根据关键码的值⽽直接进⾏访问的数据结构。
哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素
⼀般哈希表都是⽤来快速判断⼀个元素是否出现集合⾥。

哈希函数

哈希函数如下图所示,通过hashCode把名字转化为数值,⼀般hashcode是通过特定编码⽅式,可以将其他数据格
式转化为不同的数值,这样就把学⽣名字映射为哈希表上的索引数字了。
在这里插入图片描述

哈希碰撞:不同的元素映射到相同的下标
在这里插入图片描述

  1. 线性法:
    其实拉链法就是要选择适当的哈希表的⼤⼩,这样既不会因为数组空值⽽浪费⼤量内存,也不会因为链表太⻓⽽在
    查找上浪费太多时间。
    在这里插入图片描述

  2. 拉链法:
    使⽤线性探测法,⼀定要保证tableSize⼤于dataSize。 我们需要依靠哈希表中的空位来解决碰撞问题。
    例如冲突的位置,放了⼩李,那么就向下找⼀个空位放置⼩王的信息。所以要求tableSize⼀定要⼤于dataSize ,
    要不然哈希表上就没有空置的位置来存放 冲突的数据了。如图所示:
    在这里插入图片描述

常见的3种哈希函数

  1. 数组

  2. set
    在这里插入图片描述

  3. map
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值