📜 最大流算法

最大流问题是寻找在容量网络中流量最大的可行流,常用算法包括Ford-Fulkerson、Edmonds-Karp和Dinic。Ford-Fulkerson通过增广路径更新残存网络,Edmonds-Karp使用BFS寻找增广路径,而Dinic算法则通过分层图和阻塞流提高效率。最大流问题也可用于解决二分图最大匹配。

📜 Dijkstra 算法模版及应用

Dijkstra算法用于计算最短路径,时间复杂度为O(E log V),而Bellman-Ford算法可处理负权重边,时间复杂度为O(VE)。练习题包括网络延迟时间、最小体力消耗路径和概率最大的路径,均可应用Dijkstra算法及其变体解决。

📜 最小生成树算法

最小生成树算法包括Kruskal和Prim算法,前者依赖于并查集以避免环,后者利用优先级队列和切分定理动态选择边。两者的时间复杂度均为O(ElogE),适用于无向加权图的最小生成树问题。

📜 二分图判定算法

二分图的判定算法通过图的遍历和节点着色来判断图是否为二分图,使用DFS或BFS算法实现。该算法在存储电影与演员关系等场景中具有实用价值,并可应用于解决相关的算法题。

📜 环检测及拓扑排序算法

介绍有向图的环检测和拓扑排序算法,包括DFS和BFS实现方法,讨论课程依赖关系和学习顺序,提供示例和代码实现,最后介绍了经典的名流问题。