您好,登錄后才能下訂單哦!
hash算法的原理是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
比如100個員工,100個工號,就用工號做hash
不失一般性,我們這里只給出其中8個關鍵字進行分析,8個關鍵字如下所示:
此法適于:能預先估計出全體關鍵字的每一位上各種數字出現的頻度。
K1=61317602 K2=61326875 K3=62739628 K4=61343634
K5=62706815 K6=62774638 K7=61381262 K8=61394220
取數據元素關鍵字中某些取值較均勻的數字位作為哈希地址的方法
例2,要構造一個數據元素個數n=80,哈希長度m=100的哈希表。
關鍵字位數較多,而且關鍵字中每一位上數字分布大致均勻的情況。
將關鍵字分割成位數相同的幾部分(最后一部分的位數可以不同),然后取這幾部分的疊加和(舍去進位),這方法稱為折疊法。
這種方法適用于:
則對不同的關鍵字得到的哈希函數值不易產生沖突,
由此產生的哈希地址也較為均勻
先取關鍵字的平方,然后根據可使用空間的大小,選取平方數是中間幾位為哈希地址
原理是通過取平方擴大差別,平方值的中間幾位和這個數的每一位都相關,
此法適于:關鍵字中的每一位都有某些數字重復出現頻度很高的現象
減去法是數據的鍵值減去一個特定的數值以求得數據存儲的位置。
將十進制數X看作其他進制,
比如十三進制,再按照十三進制數轉換成十進制數,提取其中若干為作為X的哈希值。
一般取大于原來基數的數作為轉換的基數,并且兩個基數應該是互素的。
理論研究表明,除留余數法的模p取不大于表長且最接近表長m素數時效果最好
此法適于:對長度不等的關鍵字構造哈希函數。
對于相似度高的數據,倒過來就很均勻了
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。