【信源编码作业】3. 散列表/哈希表的介绍与理解

哈希表是什么

哈希表(或叫散列表)是一种以键-值(key-value)存储数据的结构,也就是说,把它当成一个黑盒子的话,我们输入查找的键(key),即可找到其对应的值(value)。
可以拿查字典做类比,当我们输入一个字时,需要得到它的页码,这里的字就是键(key),而页码就是值(value)。

那哈希表与普通的表有什么不一样呢?为什么要使用哈希表呢?

想想在查字典的时候经常会有因为字典太厚而难以找到的情况吧?这时候如何快速翻到想找的字呢——字典作者在字典的起始便为我们提供了拼音检字表和部首检字表。以拼音检字表为例,当我们通过“字->拼音->字的页码”这样一个流程去查字典的时候,我们便已经在使用哈希表了。

可以认为,哈希表与普通表的区别便是增加了索引,也就是例子里的“拼音检字表”,一个好的索引能够大大加快查询的速度。下面将详细地把“字->拼音->字的页码”翻译为哈希表这一数据结构里的各个步骤。

“字->拼音”

哈希表中,选择不同的索引会导致不同的查询速度,就像“部首”与“拼音”是字典的两种索引,对同一个字,使用这两种索引导致的查询速度是不同的。那么哈希表中索引应该如何生成,怎样的索引才是更好的呢?

在哈希表中,将这样一种把任意长度的消息压缩到某一固定长度的消息摘要的函数称为“散列函数”,也称为“哈希函数”。一般来说,散列函数满足以下的条件:

  1. 对输入值运算,得到一个固定长度的摘要(Hash val
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值