Algorithm
leolinux
嵌入式、计算机网络
展开
-
常见的字符串Hash
常用字符串哈希函数有BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash, PJWHash,ELFHash等等。//SDBM Hashunsigned int SDBMHash(char *str){ unsigned int hash = 0; while (*str) { // equivalent to: hash = 65599*hash + (*str++); hash = (*str++原创 2010-09-29 15:42:00 · 424 阅读 · 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 = 100n k = (1100100) 2n k 2 = (10011 1000 10000) 2n h(k) = (1000) 2 = 8(3)原创 2010-09-29 16:09:00 · 534 阅读 · 0 评论