我比較了排序和自定義散列函數對不同長度的字符串的性能,結果有點令人驚訝。我期待在下面的代碼中的函數prime_hash(特別是prime_hash2)優於sort_hash,儘管情況正好相反。任何人都可以解釋性能差異?任何人都可以提供替代哈希? [函數應該爲包含相同字母分佈的字符串以及所有其他字符串的不同值生成相同的值]。 下面是結果我得到: For strings of max length:
我試圖從字典中的所有單詞實現fnv1a哈希函數(所以我可以稍後訪問它們)。 這是fnv1a哈希函數: int
fnv1a(unsigned char byte, uint32_t hash)
{
hash = SEED;
// SEED is a constant that I defined
return ((byte^hash) * PRIME) % HASH