940 字
2 分钟
考研专业课学习记录2026-07-13
2026-07-13

考研专业课学习记录 | 2026-07-13#

今日学习内容#

今天总共投入2.5小时学习散列表相关知识点,覆盖了408统考大纲中数据结构板块的散列表核心考点。

AI知识点带复盘#

1. 散列表核心概念复盘#

散列表(Hash Table)又称哈希表,是根据关键字(key)直接进行访问的数据结构,通过把关键字映射到表中一个位置来访问记录,以加快查找速度,这个映射函数称为散列函数,存放记录的数组称为散列表。考研核心考点:散列表的平均查找长度(ASL)与装填因子α=表中记录数n散列表长度m\alpha = \frac{表中记录数n}{散列表长度m}直接相关,α\alpha越小,发生冲突的概率越低,平均查找长度越小。

2. 常用散列函数构造方法#

考研高频考点包括:

  • 除留余数法:最常用的构造方法,公式为H(key)=key%pH(key) = key \% p,其中pp应取不大于散列表长度mm的最大质数,可最大程度减少冲突。
  • 直接定址法:H(key)=akey+bH(key) = a*key + b,适用于关键字分布连续的场景。
  • 数字分析法、平方取中法等,多以选择题形式考察适用场景。

3. 冲突解决方法(考研核心大题考点)#

分为两大类:

  1. 开放地址法:
    • 线性探测法:Hi=(H(key)+i)%m,i=1,2,...,k(km1)H_i = (H(key) + i) \% m, i=1,2,...,k(k\leq m-1),缺点是会产生“堆积”问题,相同散列地址的关键字越多,查找效率越低。
    • 二次探测法:Hi=(H(key)±i2)%mH_i = (H(key) \pm i^2) \% m,避免了线性探测的堆积问题,但不能探测到整个散列表空间。
    • 双散列法:使用第二个散列函数计算增量,进一步减少堆积。
  2. 链地址法:将所有关键字为同义词的记录存储在一个单链表中,散列表数组存储每个链表的头指针,是考研最常考察的冲突解决方法,其平均查找长度与装填因子α\alpha线性相关,且不会产生堆积问题。

4. 平均查找长度计算#

考研常考察不同冲突处理方法下的ASL计算,例如给定关键字序列和散列表长度,计算线性探测法下的成功和不成功平均查找长度,需要重点掌握计算步骤。

问题与反思#

  1. 对于不同冲突解决方法下平均查找长度的计算逻辑仍不够熟练,尤其是不成功ASL的推导过程容易混淆。
  2. 对双散列法的具体实现细节和适用场景还需要进一步梳理巩固。
  3. 在选择题中容易混淆线性探测法和二次探测法的优缺点,需要强化对比记忆。

收获与总结#

  1. 系统梳理了408大纲中散列表板块的所有核心考点,明确了散列表的核心优势在于通过空间换时间实现高效查找。
  2. 掌握了除留余数法等主流散列函数的构造规则和适用场景,能够快速判断不同场景下应选用的散列函数。
  3. 厘清了开放地址法和链地址法的核心区别,能够准确分析两种方法的优缺点和适用场景。
  4. 明确了装填因子α\alpha对散列表查找效率的决定性影响,理解了α\alpha与平均查找长度的正向关联逻辑。

💡 碎碎念:踏实吃透每一个知识点!

文档内容由 AI 辅助生成

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

考研专业课学习记录2026-07-13
https://elysiaweb.vercel.app/posts/408/7-13/
作者
程翊雪
发布于
2026-07-13
许可协议
Unlicensed

部分信息可能已经过时

目录