多数散列函数都假定关键字的全域为自然数集,因此我们首先想办法将关键字转换为自然数(如标识符pt,首先用ASCII码转换,p=112,t=116,再以128为基数来表示,即pt=112*128+116=14452)。下面介绍两种散列法:
1.除法散列法
散列函数h(k)=k mod m
要避免选择m的某些值。如m不应为2的幂,否则h(k)就是k的p个最低位数字。m常常取不太接近2的整数幂的素数
2.乘法散列法
散列函数h(k)=[m*(kA mod 1)]=[m*(kA-[kA])]
m的选择不是特别关键,一般选为2的幂