1254 字
3 分钟
考研专业课学习记录2026-07-08
2026-07-08

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

今日学习内容#

今日累计学习3小时,聚焦408数据结构中图论模块的核心应用场景,系统学习了三大高频考点:单源最短路径迪杰斯特拉算法、无向连通带权图的最小生成树求解,以及AOE网与关键路径分析,配套完成了5道历年考研真题改编的模拟题。

AI知识点带复盘#

1. 迪杰斯特拉(Dijkstra)算法#

考研核心考点#

  • 算法思想:基于贪心策略,每次从尚未确定最短路径的顶点集合中,选择距离源点最近的顶点,通过该顶点松弛其他顶点的最短路径估计值,重复此过程直到所有顶点都被访问。
  • 适用限制:仅适用于边权非负的单源最短路径问题,无法处理存在负权边或负权环的场景,与Bellman-Ford、Floyd算法形成场景区分。
  • 复杂度分析:邻接矩阵实现下时间复杂度为O(V2)O(V^2),适合稠密图;使用优先队列(堆)优化邻接表实现时,时间复杂度为O((V+E)logV)O((V+E)\log V),适配稀疏图场景,是考研高频考察的优化版本。
  • 常考题型:给定带权无向/有向图,手动模拟算法执行过程,推导源点到各顶点的最短路径长度与路径细节。

2. 最小生成树(MST)#

考研核心考点#

共两种经典求解算法,考察重点为两种算法的对比与手动模拟:

  1. Prim算法:从单个源顶点出发,每次选择连接当前生成树与外部顶点的最小权边,逐步扩展生成树。邻接矩阵实现复杂度O(V2)O(V^2)适合稠密图,堆优化版本复杂度O(ElogV)O(E\log V)适合稀疏图。
  2. Kruskal算法:将所有边按权值从小到大排序,依次选择不形成环的边加入生成树,借助并查集快速判断环的存在。复杂度主要由排序决定,为O(ElogE)O(E\log E),适合稀疏图。
  • 额外考点:最小生成树的唯一性判断(当存在多条权值相同的边且选择顺序不同时可能出现多解)、最小生成树的总权值性质。
  • 常考题型:手动模拟两种算法的执行过程,对比两种算法的适用场景与步骤差异。

3. 关键路径#

考研核心考点#

  • 核心概念:基于AOE网(边表示活动、顶点表示事件),关键路径是从源点到汇点的最长路径,其总长度决定了工程的最短完成工期。
  • 关键参数
    • ve[i]ve[i]:顶点ii的最早发生时间(拓扑排序正向递推)
    • vl[i]vl[i]:顶点ii的最晚发生时间(逆拓扑排序反向递推)
    • 活动aa的最早开始时间e(a)=ve[u]e(a)=ve[u]uu为活动起点顶点)
    • 活动aa的最晚开始时间l(a)=vl[v]len(a)l(a)=vl[v]-len(a)vv为活动终点顶点,len(a)len(a)为活动权值)
    • 活动余量l(a)e(a)l(a)-e(a),余量为0的活动为关键活动,全部关键活动组成关键路径。
  • 常考题型:给定AOE网,手动计算各顶点的vevevlvl值,推导各活动的eell值,找出所有关键路径与工程最短工期。

问题与反思#

  1. 对Kruskal算法中并查集的按秩合并与路径压缩细节记忆不够牢固,在模拟存在多条相同权值边的图时,容易误判环的存在导致推导错误。
  2. 关键路径的逆拓扑排序求解vlvl的步骤容易与拓扑排序正向递推混淆,在处理多汇点的AOE网时,汇点的vlvl值初始化容易出错。
  3. 部分复杂图的迪杰斯特拉松弛步骤容易遗漏顶点,需要借助表格辅助记录每一步的距离更新结果。

收获与总结#

  1. 系统梳理了图论三大核心应用算法的考研考点、适用场景与复杂度差异,明确了不同算法的易错边界条件。
  2. 掌握了三种算法的手动模拟方法,能够独立完成历年真题中常见的图论计算类题型。
  3. 理清了关键路径相关参数的推导逻辑,能够快速区分拓扑排序与逆拓扑排序的使用场景,避免步骤混淆。
  4. 总结了不同图结构下最优算法的选择思路,为后续刷题提速打下基础。

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

文档内容由 AI 辅助生成

分享

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

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

部分信息可能已经过时

目录