关于哈希表必须了解的一些知识

首先,本篇文章以介绍哈希表(散列表)相关名词为主要内容,不涉及具体实现过程或代码(本文部分解释为个人理解,如有疑议请评论指出或移步百度百科:哈希表,参考官方解释)

哈希表,hastable,也可以叫做散列表,名字不重要,只要明白这两者均代表同一样就对了。它是一种可以通过关键码值而可以直接快速访问的数据结构。

什么是哈希表(散列表)?

哈希表(散列表)是一系列关键码值通过哈希函数(散列函数)计算后映射在一个连续有限的区间上的集合,这个集合成为哈希表(散列表),这个集合保存了这一系列关键码值的散列地址。给定这一系列关键码值中的任意一个关键码值可以快速定位到对应的散列地址。

什么是关键码值(关键字)?

关键码值(关键字)对于哈希函数(散列函数)来说就是一个可变因子,相当于我们常说的变量,例如f(x)=ax+b,通过将x带入函数式中产生后的结果“象”映射在哈希表中,这个象也称为改关键码值的散列地址。

什么是哈希函数(散列函数)?

哈希函数(散列函数)作为关键码值与哈希表的中间介质,关系着关键码值产生的哈希地址,选取合适的哈希函数有着重要意义,良好恰当的哈希函数能够提高哈希表的访问性能,减少哈希冲突,增加数据的访问速度。

什么是哈希冲突(散列冲突)?

哈希冲突(散列冲突)顾名思义就是在构造哈希表时产生的冲突,假如在没有设计良好的哈希函数或没有选取恰当的解决冲突的方法的情况下,不同的关键码值可能产生相同的结果,即映射到相同的散列地址,这就是哈希冲突。(x1不等于x2,但f(x1) = f(x2))。

设计良好哈希函数应该考虑哪些因素?

  • 哈希函数计算所耗时间
  • 关键码值的长度
  • 关键码值的分布情况
  • 哈希表的大小
  • 记录的访问频率
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值