读书人

惯用散列函数

发布时间: 2012-11-09 10:18:47 作者: rapoo

常用散列函数
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);}

读书人网 >编程

热点推荐