雜湊表結構_雜湊函式的實現
阿新 • • 發佈:2020-09-12
雜湊函式的實現
即將給定的一個字串,轉換成一個數值下標
輸入:待轉換的字串儲存空間長度(鏈地址法)
輸出:轉換後的字串
1.首先將給定的字串轉換成一個較大的數字
實現方式:找到每個字元對應的Unicode編碼,然後利用霍納演算法計算
質數選擇:37(常用值,這是一個經驗值)
2.將這個較大的數值下標進行壓縮
實現方式:取餘法
3. 雜湊函式的程式碼實現
//雜湊函式設計
//1>將字串轉成比較大的數字:hashCode
//2>將大的數字hasCode壓縮到一定的數值範圍之內
//3>這裡將字元傳換成Unicode編碼:A~Z:65~90a~z:97~122
function hashFun(str, size){ // 1. 定義hashCode變數 var hashCode = 0; // 2. 霍納演算法,計算hashCode的值 for(var i = 0; i < str.length; i++){ // 這裡的常數值37是常用質數值 hashCode = 37 * hashCode + str.charCodeAt(i); } // 3. 取餘操作 var index = hashCode % size;View Codereturn index; }