设散列表中有n个存储单元,散列函数H(key)=key%p,则p最好选择小于散列表长度n的(  )

设散列表中有n个存储单元,散列函数H(key)=key%p,则p最好选择小于散列表长度n的(  )


A、

奇数


B、

素数


C、

偶数


D、

合数


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

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

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

故本题选B。


Top