
Algorithm
leolinux
嵌入式、计算机网络
展开
-
常见的字符串Hash
常用字符串哈希函数有BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash, PJWHash,ELFHash等等。//SDBM Hash unsigned int SDBMHash(char *str) { unsigned int hash = 0; while (*str) { // equivalent to: hash = 65599*hash + (*str++); hash = (*str++原创 2010-09-29 15:42:00 · 451 阅读 · 0 评论 -
Hash 函数、Hash表
Hash函数的随机性越好,数据分布越均匀;数据分布越均匀,冲突就越少;冲突越少,效率就越高。 设计Hash表的关键之一就是处理数据的冲突。 1. 整数的Hash函数 (1)直接取余法 ,h(k) = k mod M (2)平方取中法 ,h(k) = r (k2 ),其中r()表示取k2 的中间r位。 如: n r = 4, k = 100 n k = (1100100) 2 n k 2 = (10011 1000 10000) 2 n h(k) = (1000) 2 = 8 (3)原创 2010-09-29 16:09:00 · 562 阅读 · 0 评论