1. 程式人生 > 實用技巧 >雜湊表結構_雜湊函式的實現

雜湊表結構_雜湊函式的實現

雜湊函式的實現

即將給定的一個字串,轉換成一個數值下標

輸入:待轉換的字串儲存空間長度(鏈地址法)

輸出:轉換後的字串

  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;

        
return index; }
View Code