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

佛山建设网站公司哪家好网站系统与程序的链接

佛山建设网站公司哪家好,网站系统与程序的链接,服务器免费体验,移动网络营销是什么1 哈希表的定义 哈希表(hash table),⼜称散列表,是根据关键字(比如往哈列表里面存整数,那么整数就是关键字,也就是往哈希表里面存的类型,这个类型就是关键字)直接进⾏访问的数据结构&#xff1b…

1 哈希表的定义

哈希表(hash table),⼜称散列表,是根据关键字(比如往哈列表里面存整数,那么整数就是关键字,也就是往哈希表里面存的类型,这个类型就是关键字)直接进⾏访问的数据结构;

  • 哈希表建⽴了⼀种关键字和存储地址之间的直接映射关系,使每个关键字与结构中的唯⼀存储位置相对应。也就是针对每个关键字都会通过映射关系,拿到一个存储地址,接下来在存储地址里面存储我们想要存储的信息
  • 理想情况下,在散列表中进⾏查找的时间复杂度为O(1) ,即与表中的元素数量⽆关。因此哈希表是⼀种存储和查找⾮常快的结构

案例:统计一下字符串 “abcabcc” 中,每一个字符出现的次数,字符串只包含小写字母

这个案例就蕴藏着哈希表的思想,哈希表是给我一个关键字,通过映射关系,找到存储位置,这个案例里面每一个小写字母就是关键字,当我们想找到一个关键词出现的次数的时候,通过关键字ch减去字符‘a’就能找到存储位置,因此这个cnt数组本身就是一个哈希表;这个存储位置,你想存什么是根据你题目的要求,比如这道题要存次数,这里用的就是整型int,如果这道题是想看一个字符有没有出现过,就可以把int换成布尔类型,这个bool类型的数组就是bool类型的哈希表

2 哈希函数

将关键字映射成对应的地址就是哈希函数,也叫作散列函数,记作:hash(key)= addr比如上述案例中的ch-'a’就是一个哈希函数,记作:hash(key)=key'a;大家可以把它写成一个公式,我把值之后,通过这个公式能计算出来一个地址就可以了,比如hash('a') = 'a' - 'a' = 0

  • 说白了,哈希函数就是这个(关键字->映射关系->存储位置)里的映射关系。
  • 交给哈希函数一个关键字哈希函数给我们计算出一个存储位置

3 哈希冲突

哈希函数可能会把两个或两个以上不同的关键字,映射到同一个位置上,这种情况被称为哈希冲突,也称散列冲突。起冲突的两个不同关键字被称为同义词。

案例:给定数组a={1,3,17,1000000007,49,49,100000007},统计每个数出现的次数

思路一:
创建一个大小为 1e9+8 的数组。但它行不通,首先栈的空间非常有限,如果尝试在函数内部声明如此大的数组,会导致栈溢出,如果分配到堆里面,假设每个元素是整型数组,大小就为4字节×1e9= 4 GB如果系统内存不足或者程序是32 位的可能会导致分配失败
思路二:
设计哈希函数:hash(key)= key%7 ;模7之后创建一个大小为7的数组就可以每个元素映射到数组中每一个下标位置

但如果是以下案例,又会发生问题
哈希函数: hash(key)= key %7

hash(1)=1%7=1
hash(3)=3%7=3
hash(17)=17%7=3
hash(1000000007)=1000000007%7=6
>hash(49)=49%7=0

上面的例子中3模出来的下标是3,7模出来的下标也是3,它们两个就引起了哈希冲突,把两个不同的关键字映射到了同一个位置上,那在统计每个数出现的次数的时候,结果就乱套了,大家可能会说那我换一个模的数字呢,比如模8/9/10,但题目要是把数组里面的元素换成18 17 16,也会出现同样的问题,所以哈希冲突是不可避免的.我们要做的不是消除哈希冲突,而是需要设计出优秀的哈希函数,并且处理哈希冲突。

http://www.dtcms.com/a/428906.html

相关文章:

  • 网站开发人员薪酬温州市住房和城乡建设厅网站首页
  • 数据结构——双向链表模拟实现(最详细注释)
  • 中小企业网站制作不了做网站会很忙吗
  • 外贸网站推广建设银行个人网站
  • 六枝做网站wordpress前端上传头像
  • 西安网站seo分析佛山全网优化
  • 公司网站 备案最近一周新闻
  • 金泉网普通会员可以建设网站吗网站建设工具的实验心得
  • 网站自己可以备案吗布展设计公司排名
  • Redis7内存数据库
  • 网站seo自己怎么做个人注册公司需要多少费用
  • wordpress文章被篡改郑州seo关键词
  • Anthropic Claude Sonnet 4.5
  • 网络营销的新特点网站优化一年多少钱
  • 免费网站怎么做出来的昆明建网站的公司
  • 门户网站建设 考核设计公司网站建设模板图
  • 网站推广软件免费下载安装建网站前途
  • 屯留做网站哪里好天眼查企业信息查询平台
  • 曲靖做网站建设的公司开发公司职称个人业务自传
  • 个人建设任务网站潍坊建设网站多少钱
  • 办网站怎么办怎么做网站推销自己的产品
  • 网站源码下载网php 网站开发框架
  • 衡水网站制作与推广织梦怎么制作手机网站源码
  • 宁波建设网站报价做图片视频的网站有哪些
  • 《强化学习数学原理》学习笔记3——贝尔曼方程核心概念梳理
  • 第三届智能制造与机电一体化国际学术会议(IMM2026)
  • 广州网站建设知名 乐云践新wordpress 谷歌登陆
  • CKAD-CN 考试知识点分享(9) 创建 ingress
  • 网站专题页面案例无锡易时代网站建设有限公司怎么样
  • 晋中网站建设intitle 网站建设