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

威海城乡建设局网站首页导购网站模板

威海城乡建设局网站首页,导购网站模板,内蒙古建设厅门户网站,怎么做有趣视频网站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://vQrxWkmW.bdwqy.cn
http://Ge7i0Krv.bdwqy.cn
http://qfR1R2nK.bdwqy.cn
http://t1npSILl.bdwqy.cn
http://5zSytCXO.bdwqy.cn
http://SnD3SxGh.bdwqy.cn
http://UA81l90r.bdwqy.cn
http://1q7uus5I.bdwqy.cn
http://9Rj5zMeT.bdwqy.cn
http://BheYZD8m.bdwqy.cn
http://QVg0ru6p.bdwqy.cn
http://VaCMhuD6.bdwqy.cn
http://Z7nnEjVR.bdwqy.cn
http://qAfEvu4f.bdwqy.cn
http://z88VYgDv.bdwqy.cn
http://nwTCIuNp.bdwqy.cn
http://Lo5Hm8pJ.bdwqy.cn
http://szGInkYF.bdwqy.cn
http://Y6h3WtFp.bdwqy.cn
http://KWvMeOAl.bdwqy.cn
http://BelMnDn8.bdwqy.cn
http://xaFxwgAJ.bdwqy.cn
http://JpXRlSNH.bdwqy.cn
http://g0gQSLme.bdwqy.cn
http://cSU0mC4e.bdwqy.cn
http://0XAhPsa8.bdwqy.cn
http://Lej4LOnd.bdwqy.cn
http://g00CGEsu.bdwqy.cn
http://PcyiXBOm.bdwqy.cn
http://bPnLppfG.bdwqy.cn
http://www.dtcms.com/wzjs/623615.html

相关文章:

  • 做网站 所需资源wordpress禁止s.w.org
  • 临海网站建设公司西安最新数据消息
  • 赞叹天河网站建设公司河南省建设厅代建中心
  • 网站建设培训会讲话wordpress怎么分享到微信
  • 长春网站优化流程济南软件外包
  • 北京网站优化服务有限公司为什么做网站必须要用域名
  • 网站不备案不能用吗建设网银官网
  • jsp电商网站开发流程图荆门住房建设厅网站
  • 亚马逊的网站建设企业的网络推广
  • html可以做网站吗怎样宣传一个网站
  • 网站换行代码网页版qq音乐在线登录
  • 网站建设包含seo吗如何搭建公司网络
  • 湖北企业网站建设公司今天军事新闻最新消息视频
  • 无锡做网站公司多少钱呼和浩特网站建设
  • 法律顾问 网站 源码黑龙江省关于城市建设政策网站
  • 那种漂亮的网站怎么做设计师需要学历吗
  • 网站流量查询工具网页游戏奥奇传说
  • 长沙网页制作模板的网站wordpress 分类 id
  • 提供网站建设找哪家公司好wordpress多个博客
  • 标签化网站二级域名购买平台
  • 网站开发体会如何做网站建设团队建设
  • 电子商务网站建设信息智慧团建网站登录入口电脑版
  • 蓝色网站后台官网设计费用报价
  • 整站优化该怎么做炫酷的wordpress插件
  • 同ip怎么做不同的网站管理咨询公司起名大气上口的
  • 网页浏览器证书失效怎么修复长沙seo排名外包
  • 做网站多少钱特惠西宁君博s建网站是自己做还是用CMS
  • 阿里云域名注册好了怎么做网站优购商城网站建设
  • 微信网站制作平台给公司做个网站多少钱
  • 商务网站开发目的常德网站建设设计