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

数据结构-哈希表(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.lryc.cn/news/234093.html

相关文章:

  • HCIA-综合实验(三)
  • Java程序员的成长路径
  • 几种常用的排序
  • 性能测试【第三篇】Jmeter的使用
  • 业务:业务系统检查项参考
  • 解决公网下,k8s calico master节点无法访问node节点创建的pod
  • 六边形架构
  • 基于单片机的智能家居安保系统(论文+源码)
  • 盘点3种Python网络爬虫过程中的中文乱码的处理方法
  • 小程序富文本图片大小问题
  • Diagrams——制作短小精悍的流程图
  • Elasticsearch基础条件查询
  • 【SAP-ABAP】SAP与外围系统对接方式
  • 云计算的发展趋势
  • 国民技术Cortex-M0系列单片机IAP升级
  • Pycharm中添加Python库指南
  • Oracle OCP / MySQL OCP认证容易通过吗
  • flutter web 中嵌入一个html
  • 使用Spark SQL读取阿里云OSS的数据
  • 【0235】修改私有内存(private memory)中的MyBEEntry时,st_changecount值前后变化
  • Linux学习命令之source
  • 2342. 数位和相等数对的最大和
  • FISCO BCOS 3.0【01】搭建第一个区块链网络
  • UE4动作游戏实例RPG Action解析四:装备系统
  • AIGC之Stable Diffusion
  • PHP接收并处理请求中携带的xml格式的信息
  • 信息安全相关标准
  • Python入门学习篇(一)——注释变量输入输出
  • 基于单片机智能液位水位监测控制系统设计
  • iOS 添加震动效果