范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

数据结构与算法散列表(HashTable)

  你是否注意到
  当我们在word中编辑英文单词
  如果拼写错误则会出现红色浪线提示
  那么这个功能是如何实现的呢?
  带着这个疑问,我们开始今天的内容:散列表(Hash Table)
  何为散列
  散列表其实就是我们俗称的‘哈希表’或‘Hash表’,通常在面试中会作为集合类hashMap的延申问题出现。
  散列表是一种由数组演变而来的一种数据结构,利用数组下标随机访问的特性实现快速访问。
  我们通过例子来理解一下"散列"思想
  假设某饭店现在有五桌客人点餐吃饭,我们通过数组来存放每桌客人的点餐信息,数组下标为桌号1~5,这样就实现了根据桌号获取点餐信息。
  由于饭店生意好,现在饭店扩建为两层,每层五桌,于是桌号的记录规则就变成了两位数,第一位代表楼层,第二位代表桌号,如‘21’,即二楼一号桌。
  这样一来就无法直接根据桌号对应数组下标来获取点餐信息了,我们需要做一个中间处理,将二位数的桌号转换为数组下标,然后获取信息:
  整理一下上面的思路:像这种,将编号(键)通过中间处理(散列函数)转换为数组下标(散列值value),进而快速获取数组信息的思想即散列思想。
  散列函数
  散列函数通常只做一件事:将键(key)转换为散列值(value),需要注意的是,这里的散列值是指数组下标,而并非数组所存储的数据。
  我们来实现一下上文例子中的散列函数: //两层,每层五桌,对应我们的数组下标可以是1~10 //那么‘21’应该对应下标为6 //得出散列函数算法:(第一位 - 1)* 5 + 第二位  int hash(String key){   String  first = num.substring(0,1);   int firstafter = Integer.parseInt(first) - 1;   int value = 5 * firstafter  +  num.substring(1);   return value; }
  散列冲突
  试想一下这样一种情况,这个饭店无限扩建至上百层,每层上百张餐桌,那么是否会出现key不同,但value相同的情况呢?
  实际上在真实的应用情景中,这种情况几乎无法避免,叫做‘散列冲突’。
  像目前流行的MD5、SHA等哈希算法也都无法避免散列冲突。
  那么是否有办法解决散列冲突问题呢?
  开放寻址
  开放寻址的思路是:往散列表中插入数据时,如果某个key经过散列函数散列之后,存储位置已经被占用了,我们就从当前位置开始,依次往后查找,直到找到空闲位置然后将其插入:
  需要注意的是,如果到散列表底部依然没有空位,那么会从散列表顶部继续查找,直到找到空闲位置。
  散列表的查询逻辑和上面的插入逻辑相同。
  链表法
  相比于开放寻址,链表法则更简单直接,数组的每一个元素对应条链表,所有散列值相同的元素都放入元素对应的链表中即可。
  问题回顾
  在了解了散列表的基本内容之后,我们可以回看一下开篇提到的word错词提示功能。
  可以通过散列表来实现:将英文单词库存入散列表中,每次输入单词之后,查询该词是否存在于散列表中。如果不存在则提示拼写错误即可。

跑步时怎能没有耳机?sanagA7S气传导给你更好体验SANAG骨传导耳机无线耳式499购买大家好我是数码阳阳,在平时我一直都有晨跑的习惯,因为简单的晨跑会让身体在这一整天都变得很有活力,当然了,干饭的食欲也会更高!并且我还有一个习惯三星电子,智能显示器累计销售量突破60万台三星电子18日表示,智能显示器在全球累计销量已突破60万台。智能显示器是三星电子于去年12月推出的产品系列。仅上市10个月时间,就取得销量突破60万台的成果,相当于每分钟卖出一台。秒杀小米!HAKIITIMEPRO蓝牙耳机上手体验,42dB主动降噪关于HAKII相信大家一点都不陌生,之前我们上手过旗下多款真无线蓝牙耳机,只是不支持主动降噪。为了满足大家对于降噪的需求,最近推出了HAKIITIMEPRO,支持42dB主动降噪,币圈那些事美国首只比特币期货ETF首日成交额创历史次高记录美国第一支与比特币相关的交易所交易基金(ETF)上市,首日成交额创下历史次高记录。数据显示,该ETF换手量超过2400万单位,第一天你每天玩手机的目的是什么,单纯的看看,还是自己离不开手机了?手机可以玩。但不沉迷于手机。只是把玩手机当作调节剂来玩。何为调节剂?就是你把每天的主要事情干完了后,再有空余时间,可以玩一下手机。象退休人员,每天练完身体,安排完生活后,玩一下手机苹果给国产CPU上了一课想要崛起,必须停止依赖windows10月19日凌晨,在苹果今年第二场发布会上,MacbookPro第三代AirPods以及HomePodmini等产品登台亮相。其中最为炸场的莫过于苹果最新的自研芯片M1Pro和M1零部件奇缺!9月国内手机出货量同比降8双十一大促箭在弦上,今年还能优惠多少?受零部件短缺等因素影响,9月国内及全球手机出货量均出现同比下滑,而随着双十一临近,OPPOrealmevivo一加等各手机品牌已悄然提前打响双十一战。01hr9月国内手机出货量同比小米高端手机大众化,为何不发力在澎湃芯片上?3月30日,小米发布了首款折叠屏手机XiaomiMIXFOLD折叠屏手机这款手机就搭载小米首发的澎湃C1芯片,不过这颗芯片是ISP芯片!但是小米11Ultra以及后来的小米11mi安卓手机有哪些好用的手机app可以推荐?今天给大家安利4款安卓好用逆天的APP一。小圆角如果你痴迷圆角屏幕,而手机厂商却迟迟不适配,那么这款APP将非常适合你,对于OLED屏幕,软件还加入了防烧屏模式,降低了OLED屏幕耳机市场格局被打破!国产耳机成大黑马,销量超过索尼森海塞尔相信很多人在运动的时候都有佩戴耳机听歌的习惯,然而不是每种耳机都适合在运动的时候佩戴,比如我们常见的有线耳机,运动的时候,发出沙沙沙的听诊器的声音,而且还容易掉落。这让人实在是受不峰米正式开创激光微投品类北京商报讯(记者金朝力)10月20日,峰米科技在北京召开发布会,正式开创激光微投品类,并发布了峰米R1Nano超短焦激光投影仪峰米X1激光投影仪与峰米P1口袋激光投影仪三款新品。作
2021年便宜的PS5显示器推荐ps5随着PlayStation5的发布,找到一款效果好且价格实惠的游戏显示器,而且能够利用PS5所有功能的显示器,应该是很多玩家所关心的。PS5支持高达120fps的4k内容,虽双减后被裁的教培行业员工怎么样了?转行求职,真的很难吗?一个月前,在线教育培训行业的风暴席卷全网,热搜上挂着各大名企的裁员消息,流言与官宣抢夺着职场人的注意力。整块业务直接取消,所有员工一夜离职,一落千丈的股价,也与我们共同见证一个行业小米造车,央视高度关注!网友年轻人的第一辆车或许只需等三年我愿意押上人生所有的战绩和声誉,为小米汽车而战。这一振聋发聩的宣言,是3月30日晚间时,雷军在小米春季新品发布会上宣布小米造车决心的最好注脚。在当天早些时候,雷军就在微博上公布了这苦熬25年的刘奕君成功的秘籍你的逆商,决定了人生高度公众号关注诺好杂谈了解人生百态热播剧扫黑风暴大结局,何勇的饰演者刘奕君一身正气,他用精湛演技再次圈粉无数。(图片来自网络侵删)刘奕君是北京电影学院科班出身,21岁入行,一路经历过转腾讯2022校招薪资近40w!网友急,怎么才能进大厂?近日,万众期待的国内互联网大厂校招终于开始谈薪了,打响第一枪的是腾讯,目前已经拆包的有腾讯和大疆,美团也有爆料的。其他大厂预计这几天会陆续开奖。但第一个登上热搜的还是腾讯毕竟年薪4央妈亲自下场!特斯拉攻克不下的难题,这次有答案了,网友直呼强就在8月18日,由央视新闻联合百度的百度世界大会互联网正式召开。会上,百度领航人李彦宏展示了智能出行方面的最新成果传统运动与百度科技相结合百度发布了全国首个火星车祝融号的数字人百度被迫失语,街头惨死揭露了中国流浪儿童边缘化的灰色童年公众号诺好杂谈关注了解人生百态前几天,一个绿色的铁皮盒吸引了很多网友的关注。这个铁皮盒不是别的什么,而是一个三轮车,这里面一共装了三个人一个叫作余晓芳的母亲还有她的两个女儿。(图片北方小规模生猪养殖,猪舍该如何选择?最佳方案暖棚式猪舍在标题中提到的这个关键词暖棚式,而对于暖棚这个词并不陌生。尤其是北方的网友,基本都是知道北方冬季种植蔬菜的大棚。菜农都喜欢称这样的大棚为暖棚,因为它冬季的保温性极好。在没有任何采暖你知道吗?这十种水果越吃越瘦哦减脂就是体内脂肪超过正常范围之内,由于自身形体健康的原因,通过各种手段减掉自己身上多余脂肪的行为。三月不减肥,四月徒伤悲,五月路人雷,六月男友没,七月被晒黑,八月待室内,九月更加肥恒洁走进满地是床的家,给老公房打造时尚都市的卫浴风格家是心灵的归宿,更是驻泊的港湾。当脆弱的心灵受到伤害时,家是抚平伤口的良药当人生正处在低谷时,家是重获力量的源泉。东方卫视王牌家装改造节目梦想改造家第八季暖心回归,今天恒洁领你走进如何通过预判用户行为做设计?来看大厂产品是怎么做的有时候我们会发现一些产品非常好用,当我们想要什么,界面上就会出现什么。比如双十一大促来临,我们想要咨询客服的时候,淘宝就会自动联想出我们可能会咨询的问题,非常方便快捷。其实这种好的