当前位置: 首页 > article >正文

数据结构-哈希表(C语言)

哈希表的概念

哈希表就是:

将记录的存储位置与它的关键字之间建立一个对应关系,使每个关键字和一个唯一的存储位置对

应。

哈希表又称:“散列法”、“杂凑法”、“关键字:地址法”。

哈希表思想

基本思想是在关键字和存储位置之间建立一个哈希函数hash,使每一个存储位置和关键字对应

通常关键字的集合很大,因此经过哈希函数的变换后,可能会将不同的关键字映射到同一个地址

上。这种现象称作:“冲突”,具有相同函数值的关键字称作:“同义词”。

哈希表属性

哈希函数的值域是可以使用的地址空间,称作基本区域

基本区域的长度是哈希表的长度

同义词可以存放在基本区域中未占用的单元,也可以放在另外开辟的地方。(溢出区

哈希函数的构造

哈希函数的构造一般有下面几种方法:

1.直接定址法

hash(key) = key或hash(key) = a * key + b

直接定址法的构造有点像Python里面的字典

优点:不会产生冲突

缺点:空间效率不高

2.取余法

hash(key) = key % p

p < m,m是哈希表长。

优点:计算简单,适用范围大

缺点:需要选择一个合适的p,p的选择很困难

一般来说,p是不大于m的最大素数:

3.平方取中法

先计算关键字的平方,然后取平方后数的中间几位作为地址。

key = 2587

key ** 2 = 6692569

若取三位,则hash(2587) = 925。


http://www.kler.cn/a/131687.html

相关文章:

  • 【GAN】数据增强基础知识
  • 【MySQL】聚合函数:汇总、分组数据
  • kubernetes集群编排——k8s高可用集群
  • CSS---关于font文本属性设置样式总结
  • 5-什么是猴子补丁,有什么用途?什么是反射,python中如何使用反射?http和https的区别?
  • 基于黏菌算法优化概率神经网络PNN的分类预测 - 附代码
  • js中的instance,isPrototype和getPrototypeOf的使用,来判断类的关系
  • 分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测
  • 【教3妹学编程-算法题】高访问员工
  • pytorch 安装 2023年
  • Django框架之视图层
  • C++中sort()函数的greater<int>()参数
  • Android 12 客制化修改初探-Launcher/Settings/Bootanimation
  • CAN总线负载及CANoe查看总线负载率
  • 开源与闭源:驾驭大模型未来的关键决断
  • 开关电源测试之输出暂态响应测试标准及方法详解
  • 【Python 千题 —— 基础篇】输出列表平均值
  • asp.net在线考试系统+sqlserver数据库
  • 【入门篇】1.1 redis 基础数据类型详解和示例
  • homeassiant主题