第 9 题
下列关于散列法处理冲突的叙述中,正确的是( )。
A. 只要散列表不满,线性探查再散列一定能找到一个空闲位置 B. 只要散列表不满,二次探查再散列一定能找到一个空闲位置 C. 线性探查再散列处理的冲突,一定是发生在同义词之间 D. 二次探查再散列处理的冲突,一定是发生在非同义词之间
[tag_link]
正确答案:A
在散列(哈希)方法中,同义词 是指不同的元素通过哈希函数映射到同一个哈希值(或哈希地址)。这意味着这些元素在散列表中会发生冲突,因为它们试图占用相同的位置。非同义词 指的是通过哈希函数映射到不同哈希值的元素,它们通常不会在初始哈希地址上发生冲突。对于题目中的选项: A. 只要散列表不满,线性探查再散列一定能找到一个空闲位置。线性探查是在发生冲突时,按顺序查找下一个可用位置。例如,如果发生冲突,就逐一检查下一个位置,直到找到空闲位置。只要散列表有空位,线性探查一定能找到一个空闲位置。因此,这个选项是正确的。 B. 只要散列表不满,二次探查再散列一定能找到一个空闲位置。二次探查是通过二次函数(如平方)来决定下一个检查的位置。虽然理论上在某些情况下可能会更快找到空位,但由于散列表的装填因子和特定的探查序列,可能会有探查不到空闲位置的情况,因此这个选项不一定总是正确。 C. 线性探查再散列处理的冲突,一定是发生在同义词之间。线性探查处理的冲突可能发生在同义词之间(即初始哈希值相同的元素),但也可能发生在非同义词之间(即由于探查过程而导致的冲突)。因此,这个选项是不正确的。 D. 二次探查再散列处理的冲突,一定是发生在非同义词之间。二次探查可能会导致同义词和非同义词之间的冲突。因此,这个选项是不正确的。