2012-01-22 139 views
1

請告訴我寫作寫作int hashkey= key%arraysize 從我的研究,我上面的例子應該只主陣列上進行的hashtable.i正在考慮何時計算一個整數的哈希鍵的最佳方式尺寸散列函數

+3

取決於int將包含的值的範圍。在一般情況下,在模數運算之前乘以一個大的**奇**號將會給出足夠的差值。 – wildplasser

回答

0

是的,你應選擇一個素數作爲數組大小,並使用值%arraysize作爲散列鍵。

+0

你能證明這一點嗎? –

+1

@Oli:我們有一個素數伏都教的例子。 – wildplasser

+0

我無法提供完美的理由,但這正是GCC的哈希表所做的。 – StilesCrisis

0

使用std hash.It更好。

std::size_t myHash = std::cout << std::hash<int>{}(myInt);