- 1
- 0
- 约5.61千字
- 约 12页
- 2026-06-25 发布于北京
- 举报
图论不发愁:邻接矩阵/邻接表/前向星的“选刀”指南
前言:图论题卡了,可能不是算法问题,而是“刀”选错了
在CSP-J/S复赛的失分报告中,有一个问题很少被单独拿出来讨论,但它的“杀伤力”被严重低估了——图的数据结构选错了。
场景通常是这样的:学生看到一道图论题,判断出了“这题考最短路”,也写出了正确的Dijkstra算法框架,但程序一跑——小数据没问题,大数据要么超时要么爆内存。花了大量时间去优化算法,最后才发现:不是算法不行,是存图的方式根本不支持题目要求的性能。
“邻接矩阵、邻接表、链式前向星”——这三个名字你一定不陌生。但你真的清楚在什么情况下该用哪一个吗?本文不讲图论算法本身,而是专门解决一个更前置的问题:拿到一道图论题,先花30秒判断:用哪种数据结构存这张图。
数据结构选对,代码少写一半、bug少出一半、效率翻一倍。数据结构选错,算法再优也救不回来。
一、三种存图方式的本质差异
在进入选择指南之前,先快速回顾三种存图方式的核心原理。如果你对它们已经很熟悉,可以直接跳到第二节。
1.1邻接矩阵:二维数组打天下
本质:用一个n×n的二维数组g[u][v],记录从节点u到节点v的边的信息(权值或是否存在)。
操作
复杂度
查询uv之间是否有边
O(1)
遍历u的所有邻居
O(n)
添加一条边
O(1)
空间消耗
O(n2)
1.2邻接表:每个节点维护一个邻居清
您可能关注的文档
- 2020-2024 CSP-J入门组复赛 五年真题“天花板”题型归类.docx
- 骗分与对拍:暴力出奇迹的工程化实现方法.docx
- 位运算的奇技淫巧:状压DP与集合操作的极致加速.docx
- 字符串处理三剑客:哈希、KMP及字典树的防坑手册.docx
- 线性数据结构的“特异功能”:单调栈与单调队列的高频应用场景.docx
- CSP-JS数学工具箱(二):组合数学中的“挡板法”与卡特兰数真题演义.docx
- CSP-JS数学工具箱(一):数论基础推导笔记.docx
- 从二叉堆到对顶堆:数据结构维护“第K大”问题的优雅做法.docx
- 让你的贪心不再是“赌”:证明贪心策略正确性的三大模型.docx
- 动态规划的降维打击:从推公式到压数组的实战四步法.docx
- 绵阳市平武县2025届数学四年级第二学期期末联考试题含解析.docx
- 绵阳市三台县2025届三年级数学第二学期期末模拟试题(含答案).docx
- 绵阳市三台县2025届四年级数学下学期期中模拟试题含解析.docx
- 绵阳市三台县2025届四年级数学下学期期末模拟试题(含答案解析).docx
- 绵阳市三台县2025届四年级数学下学期期末模拟试题(含答案).docx
- 绵阳市三台县2025届四年级数学第二学期期中模拟试题含答案.docx
- 绵阳市三台县2025届四年级数学第一学期阶段模拟试题(含答案).docx
- 绵阳市三台县2025届四年级数学第二学期期中模拟试题含解析.docx
- 绵阳市三台县2025届四年级数学第二学期期中模拟试题(含答案解析).docx
- 绵阳市三台县2025届四年级数学第一学期期中模拟试题含答案解析.docx
原创力文档

文档评论(0)