图论经典算法整理

本文整理了图论中的经典算法,包括Dijkstra算法求单源最短路径,Floyd算法求任意两点间最短路径,Prim算法找最小生成树,拓扑排序的应用,最大流与最小割问题,以及二分图匹配的匈牙利算法。这些算法在数据结构、计算机图形学等领域有着广泛应用。
摘要由CSDN通过智能技术生成

草稿箱放风2.0。躺了几个月到几年不等的草稿们终于迎来了春天。


之前在《数据结构》的课程、《离散数学》的课程,甚至《计算机图形学》中都接触过图论算法,现在网上搜罗若干经典图论算法,以便后用。

1-3中,待求网络是带权图,所谓的“短”和“小”指的是权值最小。

1. Dijkstra算法

求单源最短路径的算法。即求网络中某个特定点v到网络中其他所有节点的最短路径。

2. Floyd算法

求网络中任意两点间最短路径的算法。

3. Prim算法

求连通图中最小生成树的算法。

最小生成树即由网络中的节点和边组成的树,该树连接了网络中的所有节点。

4. 拓扑排序算法

给有向无环图中的节点排序:若(i,j)是网络中的边,则在排序中i在j的前面。 

应用:有向无环图可看成AOV活动网。节点可看作某种活动,边(i,j)表示活动i必须先与活动j进行。如,一个学生选课,数据结构的先修课是计算机基础,那么只有修完计算机基础之后才能修数据结构。拓扑排序相当于给出了一个上课的顺序。

5. 最大流问题

最大流研究的网络用G(V,E,C)表示。其中,V,E,C分别表示节点集合,边集合,以及边的容量集合。

网络的最大流,即在一个单源点,但汇点的网络流中找到一条容量最大的路径。

对于多源点、多汇点的情况:在网络中增加s和t两个点,其中s连接所有源点,t连接所有汇点,连边的权重设为无穷。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值