Skip to content

2022年 408 数据结构 第 9 题

数据结构2022年选择题2分

题目

下列因素中,影响散列(哈希)方法平均查找长度的是( )。

I. 装填因子

II. 散列函数

III. 冲突解决策略

错因

A

漏掉冲突解决策略 III。同样的装填因子和散列函数下,链地址法(拉链法)开放定址法的 ASL 完全不同:链地址法的 ASL 是 (成功)量级,开放定址法(线性探测)成功 ASL 是 ,对 更敏感。所以"如何处理冲突"显著影响 ASL,不能略掉。

B

漏掉散列函数 II。一个分布不均匀的散列函数(如对取模值偏离均匀分布)会让大量 key 撞进同一槽,链/簇拉得很长,ASL 飙升。换一个分布均匀的散列函数,同样的装填因子下 ASL 可以低很多。"散列函数好坏" = "冲突频率",直接决定 ASL。

C

漏掉装填因子 I。装填因子 是表满程度的核心指标—— 越大,冲突概率越高,平均探测/比较次数越多。线性探测法的 ASL 在 接近 1 时会急剧恶化(趋近无穷大),因此 是决定散列表性能的首要参数。

总解析

思路:散列表的平均查找长度(ASL)由三件事共同决定。

因素为什么影响 ASL
I. 装填因子 越接近 1,冲突越频繁;公式上 ASL 关于 单调递增,是首要参数
II. 散列函数散列函数决定 key 在表中的分布;分布越均匀 → 冲突越少 → ASL 越低
III. 冲突解决策略拉链法、线性探测、二次探测、双散列等公式不同;同 下 ASL 量级相差明显

三者各自从"键碰撞频率"和"碰撞如何处理"两个维度上影响查找过程,任何一个改变都会让 ASL 变化,所以三个因素都影响。

最终答案是 D(I、II、III)

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数