首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

惯用散列函数

2012-11-09 
常用散列函数1.平方取中法(Mid-square):首先计算标示符的平方,取结果的中间几位来获得散列表示地址。由于一

常用散列函数
1.平方取中法(Mid-square):首先计算标示符的平方,取结果的中间几位来获得散列表示地址。由于一个平方数的中间几位通常依赖于所有字符,所以标示符中有几个字符相同一样可以产生不同的散列地址。
2.折叠法(folding):键值(x)被划分为几个不同部分,除了最后一个部分外,其它所有部分都是等长的,将这些部分按某种方式相加来获得散列地址。
3.除法(Modular arithmetic):模运算,键值x被转换成数字i,用该整数除以散列表的大小获得余数,

h(x) = i%HTSize;

int hashFunction(char*key, int keyLength) {    int sum = 0;    for(int j=0; j<=keyLength; j++) {        sum = sum + static_cast<int>(key[j]);    }    return (sum % HTSize);}

热点排行