动态查找之哈希(hash)表

一、介绍

  与其他建立在“比较”基础上的查找算法不同,哈希表是通过哈希函数将储存位置与值得关键字建立一一对应关系,从而一般一次就能够得到值。但是有时对于不同关键字哈希后得到的地址会是相同的,称这种现象为冲突。具有相同哈希值的关键字称为同义词。

二、哈希函数

哈希函数一般都是尽可能是的关键字随机性较大,出现相同概率小。
直接定址法:根据关键词由哈希函数直接计算得地址
这里写图片描述
数字分析法:分析关键字规律,尽可能找关键字中不相同数字作为哈希地址
平方取中法:关键字平方后取中间几位作为哈希地址
折叠法:将关键字分割成相同几部分,然后取这几部分的叠加和作为哈希地址
除留余数法:取关键字不大于哈希表长度的m的数p除后所得余数作为哈希地址
这里写图片描述
随机数法:取关键字的随机函数值作为哈希地址

三、处理冲突

哈希函数的冲突问题是不能避免的,因此当有冲突时需要一种解决办法。
开放地址法:
顾名思义,将其他地址开放给哈希函数存储
这里写图片描述
这里写图片描述

再哈希法:
这里写图片描述

链接地址法:
将所有关键词为同义词的记录存储在同一个线性列表中
这里写图片描述

建立公共溢出区:
同义词的记录,一旦发生冲突,填入溢出表

四、查找长度

装填因子:
这里写图片描述
查找长度:
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值