溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

hash算法的原理是什么

發(fā)布時間:2021-07-30 14:34:02 來源:億速云 閱讀:121 作者:Leah 欄目:大數(shù)據(jù)

hash算法的原理是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

  • 直接定址法:

    • 比如100個員工,100個工號,就用工號做hash

  • 數(shù)字分析法:

    • 不失一般性,我們這里只給出其中8個關(guān)鍵字進行分析,8個關(guān)鍵字如下所示:

    •  此法適于:能預(yù)先估計出全體關(guān)鍵字的每一位上各種數(shù)字出現(xiàn)的頻度。

    • K1=61317602      K2=61326875      K3=62739628      K4=61343634

    • K5=62706815      K6=62774638      K7=61381262      K8=61394220

    • 取數(shù)據(jù)元素關(guān)鍵字中某些取值較均勻的數(shù)字位作為哈希地址的方法

    • 例2,要構(gòu)造一個數(shù)據(jù)元素個數(shù)n=80,哈希長度m=100的哈希表。

  • 折疊法:

    • 關(guān)鍵字位數(shù)較多,而且關(guān)鍵字中每一位上數(shù)字分布大致均勻的情況。

    • 將關(guān)鍵字分割成位數(shù)相同的幾部分(最后一部分的位數(shù)可以不同),然后取這幾部分的疊加和(舍去進位),這方法稱為折疊法。

    • 這種方法適用于:

  • 平方取中法:

    • 則對不同的關(guān)鍵字得到的哈希函數(shù)值不易產(chǎn)生沖突,

    • 由此產(chǎn)生的哈希地址也較為均勻

    • 先取關(guān)鍵字的平方,然后根據(jù)可使用空間的大小,選取平方數(shù)是中間幾位為哈希地址

    • 原理是通過取平方擴大差別,平方值的中間幾位和這個數(shù)的每一位都相關(guān),

    • 此法適于:關(guān)鍵字中的每一位都有某些數(shù)字重復(fù)出現(xiàn)頻度很高的現(xiàn)象

  • 減去法

    • 減去法是數(shù)據(jù)的鍵值減去一個特定的數(shù)值以求得數(shù)據(jù)存儲的位置。

  • 基數(shù)轉(zhuǎn)換法

    •   將十進制數(shù)X看作其他進制,

    • 比如十三進制,再按照十三進制數(shù)轉(zhuǎn)換成十進制數(shù),提取其中若干為作為X的哈希值。

    • 一般取大于原來基數(shù)的數(shù)作為轉(zhuǎn)換的基數(shù),并且兩個基數(shù)應(yīng)該是互素的。

  • 除留余數(shù)法:

    • 理論研究表明,除留余數(shù)法的模p取不大于表長且最接近表長m素數(shù)時效果最好

  • 隨機數(shù)法:

    •  此法適于:對長度不等的關(guān)鍵字構(gòu)造哈希函數(shù)。

  • 隨機乘數(shù)法

  • 字符串?dāng)?shù)值哈希法

  • 旋轉(zhuǎn)法

    • 對于相似度高的數(shù)據(jù),倒過來就很均勻了

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI