《算法精解:C语言描述》上提到的一种简单的将键值k映射到m槽位的方法:h(k)=k mod m。
而该书上写了一段话:“通常情况下,要避免m取2的幂,因为假设m=2^p,则h(k)是k的二进制数的低p位......,通常选择m会是一个素数,而且不那么靠近2的幂......”。这段话理由是:
而该书上写了一段话:“通常情况下,要避免m取2的幂,因为假设m=2^p,则h(k)是k的二进制数的低p位......,通常选择m会是一个素数,而且不那么靠近2的幂......”。这段话理由是:
以 m = 2^3 = 8 为例,如下图所示: