在散列函数H(k)=k MOD m中,一般来讲,m应取()

在散列函数H(k)=k MOD m中,一般来讲,m应取()


A、

奇数


B、

偶数


C、

素数


D、

充分大的数


【正确答案】:C
【题目解析】:

在常用的散列法中,除留余数法是一种简单有效且最常用的构造方法,其方法是选择一个不大于散列表长n的正整数p,以键值除以p所得的余数作为散列地址,即H(key) = key mod p (p≤n)。

mod是取余数运算,关键在于p的取值,若p选的不合适,容易发生冲突。如选p为偶数,则所得的散列函数总是将奇数键值映射成奇数地址,偶数键值映射为偶数地址,因而增加了冲突的机会。通常选p为小于散列表长度n的素数。也可以选取不包含小于20的因子的合数。故本题选C。