散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。
(著名的ELFhash算法)
int ELFhash(char*key){ unsigned long h=0; while(*key) { h = (h << 4) + *key++; unsigned long g = h & 0xF0000000L; if(g) h ^= g >> 24; h &= ~g; } return h % MOD;}