数据结构之哈希表

数据结构之哈希表

哈希表(散列表查找)概述

之前的顺序查找、有序查找,都是通过将查找的值与数据集进行比较,最终找到数据的相对下标。而哈希表则是不通过比较,直接通过关键字key找到数据集中的存储位置。

定义

通过一个函数f,使得

存储位置=f(关键字)

不通过遍历、比较就能把获取查找信息,这种存储技术叫散列技术
散列技术是在记录的存储位置和关键字之间建立一个确定的对应关系f,使得每个关键字对应一个存储位置。
将对应关系F称为散列函数,又称为哈希(Hash)函数,采用散列技术存储的连续存储空间称为散列表哈希表

查找步骤

1、按照散列函数存储数据
这里写图片描述
2、按照散列函数计算地址
这里写图片描述

散列技术既是一种存储方法,又是一种查找方法,其是面向查找的一种存储结构

优缺点

这里写图片描述

冲突:两个不同的关键字,散列函数求得的地址一样,这种情况称为冲突,两个关键字为散列函数的同义词。

构造散列函数

两个原则

  1. 计算简单
  2. 散列地址分布均匀
1、直接定址法

取关键字中某个线性函数值作为散列地址。
这里写图片描述

2、数字分析法

抽取:抽取关键字中一部分来计算存储位置的方法,是常用手段。

数字分析法适合处理关键字位数较大情况。

3、平方取中法

这里写图片描述

4、折叠法

这里写图片描述

5、除留取余法

最常用构造散列函数的方法。

这里写图片描述

总结

这里写图片描述

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值