图算法【完结】
文章平均质量分 77
专门讲图
醒过来摸鱼
18年考研数学140+,211硕士毕业,精通算法,单身,女
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
7.1 图的基本概念
本文介绍了图数据结构的基本概念及其应用。图作为最复杂的数据结构,广泛应用于现实问题如地铁线路规划和状态转换问题求解。文章详细阐述了12个重要图论概念:度、入度、出度、自环、平行边、简单图、完全图、团、汉密尔顿路径/回路/图、补图和自补图。其中,汉密尔顿问题和旅行商问题仍是未解决的数学难题。文章通过图示和定义说明了各类图的性质,如简单图不含自环和平行边,完全图所有节点互连,自补图与其补图同构等。这些基础概念为理解复杂图算法奠定了基础。原创 2022-02-08 11:33:18 · 4453 阅读 · 0 评论 -
7.2 图的几种分类
主要介绍加权图、无权图、有向图、无向图,并特别介绍有向无环图。原创 2022-03-01 15:32:45 · 2434 阅读 · 0 评论 -
7.3 图的存储方式
主要介绍邻接矩阵和邻接数组(列表)两种主流的存储方式。原创 2022-03-01 17:11:57 · 404 阅读 · 0 评论 -
8.1 握手定理
介绍了握手定理,并给出了证明过程原创 2022-03-02 12:06:10 · 3926 阅读 · 0 评论 -
8.2 欧拉定理(图论)
详细介绍欧拉图论定理并给出证明过程!原创 2022-03-02 16:00:11 · 6522 阅读 · 0 评论 -
8.3 Dirac定理(1952)
介绍了狄拉克定理,并详细证明了狄拉克定理。原创 2022-03-04 16:45:57 · 5458 阅读 · 15 评论 -
8.4 Ore定理(1962)
摘要:Ore定理指出,在n个节点(n>2)的简单图中,若任意两个非相邻节点的度数和≥n,则该图是哈密尔顿图。证明采用反证法,通过逐步加边构造哈密尔顿图,利用鸽巢原理推导出矛盾。该定理推广了1952年的Dirac定理,但条件较为苛刻。1962年提出的Ore定理展现了数学从特殊到一般的十年探索历程,反映了数学发展的艰难性。原创 2022-03-06 13:22:34 · 2846 阅读 · 8 评论 -
8.5 惠特尼不等式
介绍了惠特尼不等式,并给出了证明。原创 2022-03-07 17:35:37 · 1043 阅读 · 0 评论 -
8.6 欧拉图论公式
介绍了欧拉图论公式及用数学归纳法证明的过程。原创 2022-03-07 22:39:42 · 2048 阅读 · 0 评论 -
8.7 Kuratowski定理
详细解释了1981年Thomassen是怎么用三种场景证明了库拉托夫斯基定理。原创 2022-04-08 22:02:57 · 5145 阅读 · 0 评论 -
8.8 四色定理
介绍了四色定理的历史以及图论和拓扑学的研究方法,期待数学天才出现。原创 2022-04-09 11:51:01 · 3040 阅读 · 2 评论 -
8.9 五色定理(Heawood 1890)
通过三个定理作为基础铺垫,证明了Heawood1890年提出的五色定理。原创 2022-04-09 20:49:57 · 3806 阅读 · 2 评论 -
8.10 最大流最小割定理
介绍网络流的基本概念,并且给出最大流最小割定理的证明过程。原创 2022-04-10 22:20:13 · 2685 阅读 · 0 评论 -
8.11 拉姆齐定理(1929)
介绍了拉姆齐逝世前一年(1929)发现的图论定理,给出了证明过程。原创 2022-06-20 16:31:56 · 2736 阅读 · 0 评论 -
9.1 三色标记BFS
介绍了树的BFS搜索与python实现原创 2022-03-26 13:47:15 · 800 阅读 · 0 评论 -
9.2 三色标记DFS
介绍了图的三色标记DFS的三种场景以及python实现。原创 2022-03-26 12:04:20 · 1377 阅读 · 0 评论 -
9.3 DFS应用:检测环的存在
介绍了使用DFS算法在有向图和无向图中检测环的算法,DFS使用递归来实现。原创 2022-03-26 21:28:43 · 3274 阅读 · 0 评论 -
10.1 单源无权BFS
介绍单元最短路径BFS算法,并给出java与python实现原创 2022-03-27 09:38:27 · 340 阅读 · 0 评论 -
10.2 单源加权Dijkstra算法
简单介绍著名的dijkstra算法原创 2022-03-27 10:01:06 · 572 阅读 · 0 评论 -
10.3 单源负权D’Esopo-Pape
可能是C站第一个专讲D'Esopo-Pape算法的博文,本文有图有代码有测试用例。原创 2022-06-28 21:42:46 · 438 阅读 · 0 评论 -
10.5 全源负权Floyd-Warshall算法
摘要:Floyd-Warshall算法用于计算带权图中所有顶点间的最短路径,适用于存在负权边但不含负权环的图。该算法采用动态规划思想,通过三维数组存储中间结果,其中D(k)[i][j]表示顶点i到j且中间顶点不超过k的最短路径。递归公式为D(k)[i][j] = min(D(k-1)[i][j], D(k-1)[i][k] + D(k-1)[k][j])。算法从初始化邻接矩阵开始,逐步迭代计算直至包含所有顶点。文中给出了Python实现代码,并通过实例演示了算法过程。原创 2022-03-29 16:17:44 · 1430 阅读 · 0 评论 -
10.4 单源负权Bellman–Ford算法
摘要: Bellman-Ford算法用于计算含负权重边图的最短路径,但不能处理负权重环(会导致路径无限趋近负无穷)。其核心是通过松弛操作(比较当前路径与新路径)更新距离数组,时间复杂度为O(mn)。Python实现展示了算法步骤,包括初始化、松弛循环和负权重环检测。与SPFA、Johnson算法相比,Bellman-Ford稳定性高但效率较低,适用于含负权边但无负权环的图。测试案例验证了算法在特定图中的有效性。原创 2022-04-01 10:22:09 · 321 阅读 · 0 评论 -
10.6 全源(All pairs)负权Johnson算法
CSDN上少有的讲解Johnson算法证明过程的文章。不讲证明过程,怎么体会伸缩数列之美?原创 2022-04-01 16:45:36 · 1182 阅读 · 0 评论 -
11.1 Ford-Fulkerson算法及Edmonds-Karp算法
介绍经典的Ford-Fulkerson最大流算法,有图文例子,有python代码!原创 2022-04-12 21:42:19 · 1544 阅读 · 0 评论 -
11.2 Dinitz算法
详细介绍了Dinitz算法的实现过程原创 2022-04-13 22:07:36 · 1247 阅读 · 0 评论 -
11.3 Push-relabel algorithm
介绍了push-relabel算法,并给出python实现原创 2022-04-15 21:36:37 · 1057 阅读 · 0 评论 -
12.1 Prim算法
介绍Prim算法的原理,给出了案例分析和Python,帮助大家快速理解Prim算法原创 2022-04-17 15:39:55 · 982 阅读 · 0 评论 -
12.2 Kruskal算法
以实例讲解了如何使用并查集实现kruskal算法,并给出python实现原创 2022-04-17 19:48:53 · 544 阅读 · 0 评论 -
12.3 Reverse-Delete算法
数据结构最后一篇博文,讲述最小生成树反向删除算法,有案例,有python实现。原创 2022-04-19 19:14:53 · 1116 阅读 · 0 评论 -
12.4 Borüvka算法
用例子和python代码来讲述boruvka算法过程原创 2022-04-18 21:51:15 · 2298 阅读 · 0 评论 -
13.1 Sharir-Kosaraju算法
本文介绍了Sharir-Kosaraju算法(简称Kosajaru算法)用于计算有向图的强连通分量(SCC)。强连通分量是指图中任意两点可以双向到达的极大子图,可以是环、相邻环、反向平行边或单独节点。该算法分为三步:1)DFS计算节点完成时间;2)生成逆图;3)在逆图上按完成时间降序DFS,找出所有强连通分量。文章通过图示详细演示了算法过程,并提供了Python实现代码,包括图的表示、DFS时间戳计算和逆图处理。算法结果可用于图的凝结(condensation)简化。原创 2022-04-06 15:10:53 · 1069 阅读 · 0 评论 -
13.2 Tarjan算法
Tarjan算法用于寻找有向图中的强连通分量(SCC),通过DFS遍历时维护发现时间戳(disc)和低连接值(low)来实现。当节点遇到回边时更新low值,若low值与disc值相等则形成一个SCC。文章通过图示详细展示了算法执行过程,并提供了Python实现代码,包括节点状态管理(未访问、已访问、已完成、已弹出)和SCC提取逻辑。测试代码验证了算法在示例图上的正确性,能准确识别图中的各个强连通分量。原创 2022-04-07 17:07:47 · 905 阅读 · 2 评论 -
14.1 Kahn算法
详细介绍了拓扑排序的BFS算法(也叫Kahn算法),并附带Java与Python实现。原创 2022-04-01 21:23:43 · 3959 阅读 · 0 评论 -
14.2 拓扑排序DFS算法
本文介绍了基于三色标记DFS的拓扑排序算法。算法使用白、灰、黑三色标记节点状态:白色表示未访问,灰色表示正在处理,黑色表示已完成。通过栈结构实现DFS遍历,将完成节点插入链表头部,最终形成拓扑序列。文章提供了Python实现代码,包含UnweightedGraph类和拓扑排序方法,并通过两组测试数据(无环和有环图)验证算法正确性。同时指出三色标记法不适合检测环路,建议使用额外路径标记数组优化环检测性能。测试案例展示了算法在"赚钱-买房-结婚"等场景下的应用。原创 2022-04-07 00:26:55 · 2873 阅读 · 0 评论
分享