我想構造一個散列表,它查找1到15個字節範圍內的字節序列(字符串)中的鍵。構造一個散列表/散列函數
我想存儲一個整數值,所以我想像一個哈希數組就足夠了。我很難概念化如何構建一個散列函數,因爲給定的關鍵字會給數組一個索引。
任何協助將會很多appreiated。
在散列條目的最大數目爲:4081 * 15 + 4081 * 14 + ... 4081 = 4081((15 *(16))/ 2)= 489720.
因此,例如:
int table[489720];
int lookup(unsigned char *key)
{
int index = hash(key);
return table[index];
}
什麼是散列函數的一些很好的選擇,或者我將如何去構建一個?
謝謝。
如果兩個鍵映射到相同的索引,則會發生衝突,在您的示例中未正確處理該衝突。你是否保留你的例子只是爲了說明你的哈希,還是你真的需要關於哈希表本身的額外解釋? (開放哈希,關閉哈希,...) – Patrick 2010-06-03 06:51:26