一个哈希表,包括 $n$ 个位置(分别编号 $0 \sim (n-1)$),每个位置最多仅能存储一个元素。该哈希表只有插入元素和查询两种操作,没有删除或修改元素的操作。以下说法错误的是( )。
分析时间复杂度时关注循环层数和每层迭代次数,递归算法则分析递归树。注意最坏/最好/平均情况的区别。
分析复杂度时注意外层循环和内层循环的关联。例如内外两层都到n的循环不一定是O(n²),要看内层是否每次都在缩小。
【考点】哈希表|线性探测|时间复杂度
1. 考纲定位 本题考查 GESP 七级"数据结构与算法"模块中的哈希表线性探测机制。命题人专门设置此题,就是要卡住考生对"哈希表不是随机访问"这一本质的认知偏差——不少学生误以为哈希表始终 O(1) 查询,却忘了冲突处理链的存在。
2. 解题思维 按选项逐一检验:
题目问"错误的是",B、D 都错,但 D 是更隐蔽的语义陷阱——它把"哈希位置空"偷换成"元素不存在",实际该元素可能已被探测链推到别处。
3. 陷阱拆解
4. 反命题思维 若把哈希函数改为开放寻址的二次探测,再问"最坏查询复杂度",答案会变成 O(√n) 而非 O(n)。刷到此类题,先问自己:这里考的是哈希的"理论理想性",还是"实际探测链"?前者选 O(1),后者选 O(n)。