一文告诉你哈希思想与哈希表构造到底是什么

Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。

今天我们就一起来探索一下,哈希最底层的奥秘。

构造一种储存结构,通过某种函数,使得其元素的储存位置与他的关键码之间能够建立一一映射关系,那么在查找时通过该函数很快找到相应元素。

简言之,就是设定某一固定函数(hashFunc),通过此函数来使插入元素的值与元素位置相对应,往后我们需要查找此元素时就可以通过此函数(hashFunc)找到该值。

散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。

美国说唱歌手Soulja Boy考虑推出加密代币Souljacoin:美国说唱歌手DeAndre Cortez Way (Soulja Boy)在推特发文表示,正在考虑制作一种以他的名字命名的加密货币Souljacoin。他指出,“是时候”启动它了。(U.Today)[2021/5/28 22:53:30]

该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。

哈希函数使得计算出来的地址均匀分布在整个空间。

根据待插入元素的关键码,根据哈希函数计算出其存储位置。

我们用除留余数法的哈希函数进行介绍:

例: 现有 1 ,3,4,5,6,9几个数进行储存,将n%10求模运算的结果作为哈希地址进行元素插入。

若想查找某一元素时,则只需要对查找元素进行哈希函数运算,得到其存放地址,就能找到该元素。

当出现插入一个元素,其根据哈希函数计算出的地址,已经被其他元素占用的情况称为哈希冲突。

如:

为了能更好的识别当前位置是否被占用,我们需要对每个位置进行标记

enum state{EMPTY,FULL,DELETE};注意:如果我们要删除某一元素时,不能将其直接删除,如果直接删除,会对当前结构产生影响,导致其他元素的搜索出错,所以当我们要删除一个元素时,需要将其标记为删除,而非空。

开散列又称链地址法,首先对关键码集合用哈希函数计算哈希地址,当具有相同地址的关键码时,将所有同一地址的元素,通过单链表的形式链接起来,而各链表的头结点存储在哈希表中。

这下,你该了解哈希的思想和哈希表构造了吧?欢迎在评论区和我们分享你的想法!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块分享

AVAX金色前哨丨嘉楠耘智遭股东二次起诉

金色财经  区块链3月6日讯  比特币挖矿制造商嘉楠耘智的一位股东已经正式对该公司发起诉讼,声称该公司违反了《证券法》。 该诉讼已经于当地时间3月4日提交到了美国俄勒冈州地方法院,原告指控嘉楠耘智在向美国证券交易委员会(SEC)提交的首次公开募股(IPO)申请中有关该公司财务状况和运营状况信息误导了投资者。

Filecoin金色观察 | 加密货币交易所需要“熔断机制”吗?

时隔23年,美股史上第二次熔断来了。 标普开盘不久下跌7%,全市场(包含期权和股票期货市场)暂停交易15分钟。标普收盘225.8点,下跌7.6%,分别成为史上单天下跌点数之最和下跌百分比第17位。道琼斯虽然开写得没有触及到0%的熔断水平,但收盘2013.8点,下跌7.79%,分别称为史上单天下跌点数之最和下跌百分比第11位。美股历史再一次被改写。

MANA经济参考报 | 在区块链等引领下 数字经济平台终将站在舞台中央

原标题:发挥数字经济优势战疫情 推动经济社会正常有序 在此次抗击新冠肺炎疫情中,以数据生产要素为基础的数字经济平台,依托新技术,充分利用各自优势,发挥了信息聚合、数据共享、资源调配、物资流转、技术支撑、金融支持、交流沟通、精准定位、搜索追踪等作用。数字经济平台还为企业复工复产、网上办公、稳就业、保民生,进而取得抗“疫”的最终胜利起到了一定的支撑作用。

[0:0ms0-1:125ms