数据结构-哈希表(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。
相关文章:
数据结构-哈希表(C语言)
哈希表的概念 哈希表就是: “将记录的存储位置与它的关键字之间建立一个对应关系,使每个关键字和一个唯一的存储位置对 应。” 哈希表又称:“散列法”、“杂凑法”、“关键字:地址法”。 哈希表思想 基本思想是在关键字和存…...
HCIA-综合实验(三)
综合实验(三) 1 实验拓扑2 IP 规划3 实验需求一、福州思博网络规划如下:二、上海思博网络规划如下:三、福州思博与上海思博网络互联四、网络优化 4 配置思路4.1 福州思博配置在 SW1、SW2、SW3 上配置交换网络SW1、SW2、SW3 运行 S…...
Java程序员的成长路径
熟悉JAVA语言基础语法。 学习JAVA基础知识,推荐阅读书单中的经典书籍。 理解并掌握面向对象的特性,比如继承,多态,覆盖,重载等含义,并正确运用。 熟悉SDK中常见类和API的使用,比如࿱…...
几种常用的排序
int[] arr new int[]{1, 2,8, 7, 5};这是提前准备好的数组 冒泡排序 public static void bubbleSort(int[] arr) {int len arr.length;for (int i 0; i < len - 1; i) {for (int j 0; j < len - i - 1; j) {if (arr[j] > arr[j1]) {int temp arr[j];arr[j] ar…...
性能测试【第三篇】Jmeter的使用
线程数:10 ,设置10个并发 Ramp-Up时间(秒):所有线程在多少时间内启动,如果设置5,那么每秒启动2个线程 循环次数:请求的重复次数,如果勾选"永远"将一直发送请求 持续时间时间:设置场景运行的时间 启动延迟:设置场景延迟启动时间 响应断言 响应断言模式匹配规则 包括…...
业务:业务系统检查项参考
名录明细云平台摸底1.原有云平台体系:VMware、openstack、ovirt、k8s、docker、混合云系列及版本 2.原有云平台规模,物理机数量、虚拟机数量、迁移业务系统所占配额 3.待补充系统摸底 (适用于物理主机)每一台虚拟机或物理机: 1.系统全局参数…...
解决公网下,k8s calico master节点无法访问node节点创建的pod
目的:解决pod部署成功后,只能在node节点访问,而master节点无法访问 原因:集群搭建时,没有配置公网进行kubectl操作,从而导致系统默认node节点,使用内网IP加入k8s集群!如下ÿ…...
六边形架构
Alistair Cockburn是于1953年出生在美国的一位软件开发方法学家。他毕业于康奈尔大学计算机科学专业,并获得了博士学位。 Cockburn在敏捷软件开发领域做出了许多重要的贡献,他被广泛认可为敏捷方法学的奠基人之一。他提出了许多关于敏捷开发的原则和实践…...
基于单片机的智能家居安保系统(论文+源码)
1.系统设计 本次基于单片机的智能家居安保系统设计,在功能上如下: 1)以51单片机为系统控制核心; 2)温度传感器、人体红外静释电、烟雾传感器来实现检测目的; 3)以GSM模块辅以按键来实现远/近程…...
盘点3种Python网络爬虫过程中的中文乱码的处理方法
网络爬虫过程中三种中文乱码的处理方案,希望对大家的学习有所帮助 一、思路 其实解决问题的关键点就是在于一点,就是将乱码的部分进行处理,而处理的方案主要可以从两个方面进行出发。其一是针对整体网页进行提前编码,其二是针对…...
小程序富文本图片大小问题
文章目录 概要uniapp小程序情况解决方法及完整示例 概要 在小程序使用富文本或者在nuiapp(小程序的)使用富文本都会转为 <rich-text nodes"<p class"p class">内容</p>”></rich-text>如果是这种情况的话在css…...
Diagrams——制作短小精悍的流程图
今天为大家分享的是一款轻量级的流程图绘制软件——Diagrams。 以特定的图形符号加上说明,表示算法的图,称为流程图或框图。流程图是流经一个系统的信息流、观点流或部件流的图形代表。我们常用流程图来说明某一过程。 流程图使用一些标准符号代表某些类…...
Elasticsearch基础条件查询
条件查询 query:查询 match:匹配 match_all:匹配所有 #第一种 GET /shopping/_search?q名字:张三#第二种 GET /shopping/_search {"query": {"match": {"名字": "张三"}} }#全量查询 match_all G…...
【SAP-ABAP】SAP与外围系统对接方式
SAP作为接受方 1.JAVA直接配置IP、账号、密码(有些人叫SAPWEBAPI)调用SAP里面的RFC函数 2.SAP发布RFC函数,配置webservice地址 3.SAP发布ODATA服务 4.SAP发布restful的http服务 5.我不太懂的UI5和FIORI本质好像也是odata服务 6.IDOC SA…...
云计算的发展趋势
云计算的发展一直是一个极具活力和创新的领域。随着技术的不断进步和应用场景的拓展,云计算将在未来继续发挥重要作用。以下是云计算发展的一些趋势: 边缘计算的崛起: 随着物联网设备的普及和应用场景的增多,边缘计算成为一个重要…...
国民技术Cortex-M0系列单片机IAP升级
考虑到设备部署到现场后有可能需要进行软件升级,之前做过PIC系列单片机的升级,现在想做个国民技术N32G031系列Cortex-M0内核的单片机IAP方案。 因为国民技术系列单片机在很多大程度上都模仿了STM32,所以我想其升级方案极有可能差不多。于是在…...
Pycharm中添加Python库指南
一、介绍 Pycharm是一款为Python开发者提供的集成开发环境(IDE),支持执行、调试Python代码,并提供了许多有用的工具和功能,其中之一就是在Pycharm中添加Python库。 添加Python库有许多好处,比如能够增加开…...
Oracle OCP / MySQL OCP认证容易通过吗
诸多学员在首次考OCP时,不清楚要如何选择。在本文中,我会为大家进行讲解! 选择OCP认证时需要考虑的几大项目: 授课老师师资经验 课程大纲 试听课程 考试通过率 业界口碑 服务质量 郭一军老师的OCP培训在业界培训的学员中已…...
flutter web 中嵌入一个html
介绍 flutter web 支持使用 HtmlElementView嵌入html import dart:html; import dart:ui as ui; import package:flutter/cupertino.dart;class WebWidget extends StatelessWidget {const WebWidget({super.key});overrideWidget build(BuildContext context) {DivElement fr…...
使用Spark SQL读取阿里云OSS的数据
读OSS数据 创建一个table,并关联OSS目录路径 CREATE TABLE my_table USING parquet OPTIONS (path oss://my_bucket/my_data_dir/dt20230904, -- 关联OSS路径header true, -- 如果Parquet文件包含列名的头部信息,则设置为true,否则设置为f…...
告别改板焦虑!手把手教你用Ansys SIwave 2022R2搞定PCB信号完整性仿真(附S参数导出Pspice全流程)
告别改板焦虑!Ansys SIwave 2022R2信号完整性仿真实战指南 在高速PCB设计领域,信号完整性问题如同悬在硬件工程师头顶的达摩克利斯之剑。当信号速率突破10Gbps,板间距离压缩至毫米级时,传统"设计-打样-测试"的迭代模式已…...
ChatTTS一键启动:从零搭建语音合成服务的实战指南
语音合成服务在现代应用中扮演着越来越重要的角色。它被广泛应用于智能客服、有声读物生成和视频内容配音等场景。通过将文本转化为自然流畅的语音,极大地提升了人机交互的体验和应用的可访问性。 然而,对于希望快速部署ChatTTS这类先进语音合成模型的开…...
用Arduino玩转GPIO中断:按键消抖+过零检测的5个实战技巧
用Arduino玩转GPIO中断:按键消抖过零检测的5个实战技巧 在智能家居和物联网设备开发中,GPIO中断的高效处理能力往往决定了整个系统的响应速度和稳定性。想象一下,当你按下智能开关却要等待半秒才有反应,或者交流电器在错误的时间点…...
答辩 PPT「懒人救星」实测:paperxie AI 一键把论文转成答辩稿,再也不用熬夜排版
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPT 谁本科答辩没栽在 PPT 上?万字论文…...
AI建站避坑指南:10个高频问题与风险防范全解析
用AI建站虽然快,但过程中隐藏的风险如果没到,轻则内容效果差,重则可能有版权或合规隐患。这份避坑指南,围绕大家最关心的10个核心问题,给出客观的分析和可操作的防范建议,帮你安心用好AI建站工具。\### 核心…...
建立情感绑架链:让团队恐惧失去你——软件测试从业者的职场影响力解析
测试工程师的隐形权力困境 在软件研发体系中,测试工程师常陷入价值被低估的困境。当迭代压力激增时,测试周期首当其冲被压缩;当线上出现故障时,测试环节却成为追责焦点。这种结构性矛盾催生出一种特殊的职场生存策略——通过构建…...
零代码自动化:OpenClaw+GLM-4.7-Flash实现跨平台数据同步
零代码自动化:OpenClawGLM-4.7-Flash实现跨平台数据同步 1. 为什么选择OpenClaw处理跨平台数据同步? 去年我接手了一个棘手的任务:每周需要从某电商平台导出销售数据,清洗后上传到内部数据库。手动操作不仅耗时2-3小时ÿ…...
ThinkPad双风扇深度解析:TPFanCtrl2实战配置与性能优化指南
ThinkPad双风扇深度解析:TPFanCtrl2实战配置与性能优化指南 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 TPFanCtrl2是一款专为ThinkPad双风扇机型设计的…...
若依分离版集成Activiti7:从零构建企业级流程中心
1. 环境准备与版本兼容性检查 在开始整合之前,我们需要先确认几个关键点。若依分离版是基于SpringBoot的前后端分离架构,而Activiti7作为新一代工作流引擎,两者整合最需要注意的就是版本兼容性。我去年在金融项目里就遇到过因为版本不匹配导致…...
水晶排课 13.9.0.5:专注学校教务排课场景,集智能自动排课、灵活课表调整、多维度视图与便捷输出于一体,高效解决排课冲突,适用于中小学各类教务管理需求。
大家好,我是大飞哥。在学校教务管理中,排课是一项繁琐又容易出错的工作 —— 既要兼顾教师课时、班级需求,又要避免冲突,这款水晶排课 13.9.0.5就是专门解决这些问题的工具,它是一款专业高效的教务排课软件,…...
