常用散列函数

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);
}

你可能感兴趣的:(C++,c,C#,J#)