散列函數的構造方法
簡單指散列函數的計算簡單快速;
均勻指對於關鍵字集合中的任一關鍵字
集K隨機均勻地分布在表的地址集{
為簡單起見
(
具體方法
間幾位數和乘數的每一位都相關
【例】將一組關鍵字(
(
若取表長為
(
相應的散列函數用C實現很簡單
int Hash(int key){ //假設key是
key*=key; key/=
return key%
}
(
該方法是最為簡單常用的一種方法
該方法的關鍵是選取m
【例】若選m是關鍵字的基數的冪次
同的關鍵字均互為同義詞
【例】若關鍵字是十進制整數
(
該方法包括兩個步驟
該函數的C代碼為:
int Hash(int key){
double d=key *A; //不妨設A和m已有定義
return (int)(m*(d-(int)d));//(int)表示強制轉換後面的表達式為整數
}
(4)隨機數法
選擇一個隨機函數,取關鍵字的隨機函數值為它的散列地址,即
h(key)=random(key)
其中random為偽隨機函數,但要保證函數值是在0到m-1之間。TW.wInGWiT.cOM
From:http://tw.wingwit.com/Article/program/sjjg/201311/23686.html