在一个长度为m的散列表中,初始为空,使用线性探测法解决冲突。如果插入n(n<m)个不同的关键码,且这些关键码的散列地址都相同,那么探测的总次数是多少?
答案解析
题目考察的是散列表中线性探测法解决冲突时的探测次数计算。当所有关键码的散列地址都相同时,第一个关键码插入时不需要探测,第二个关键码需要探测1次,第三个关键码需要探测2次,依此类推,第n个关键码需要探测n-1次。因此,总的探测次数是1+2+...+(n-1)=n(n-1)/2。选项A忽略了后续关键码的探测次数,选项C错误地将探测次数计算为n的平方,选项D错误地将探测次数与散列表的长度m相关联。正确答案是B,因为它正确计算了所有关键码的探测总次数。
正确答案:B