数据结构——hash散列表的存储效率一般不超过50%原因

Hash Table 常用于频繁进行 key/value 模式的查找中。(查找模式,如匹配查找)

哈希表最大的优点在于查找速度快,但存储时可能发生collision(冲突)。

哈希表大多使用open addressing(开放定址法)来解决collision,此时search的时间复杂度计算公式为:

  1/( 1 - n/m )

其中,n与m分别表示存储的记录数与哈希表的长度,即装填因子( load factor ) 、负载因子n/m

故,若哈希表半满,即 n/m >= 1/2,则每次的search次数可能会 >= 2

因此,为了保证Hash Table在 key/value 查找模式中的优势,一般,其存储效率不会超过50%。

总结:
1、超过50%, 将增加查找次数,可能大于2
1、散列表(Hash table,也叫哈希表),直接根据关键码值(Key value)进行访问得到查询结果的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
2、查找和插入的速度较快,理论上, 哈希表插入和查找操作的时间复杂度都是O(1)。
3、根据散列函数来寻址,存储时可能发生冲突(不同的值通过散列函数映射后可能得到同一个结果值)
4、有多种解决冲突的方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值