带你读《图解算法小抄》二十五、图(7)https://developer.aliyun.com/article/1347766?groupCode=tech_library
1)示例
拓扑排序
上图展示了许多有效的拓扑排序,包括:
- 5, 7, 3, 11, 8, 2, 9, 10(从左到右、从上到下)
- 3, 5, 7, 8, 11, 2, 9, 10(选择编号最小的可用顶点)
- 5, 7, 3, 8, 11, 10, 9, 2(选择边数最少的顶点)
- 7, 5, 11, 3, 10, 8, 9, 2(选择编号最大的可用顶点)
- 5, 7, 11, 2, 3, 8, 9, 10(从上到下、从左到右尝试)
- 3, 7, 8, 5, 11, 10, 2, 9(任意顺序)
2)应用
拓扑排序的典型应用之一是基于依赖关系的任务调度。任务由顶点表示,如果任务 x 必须在任务 y 之前完成,那么就存在从 x 到 y 的边(例如,洗衣服时,洗衣机必须先完成才能把衣服放入烘干机)。然后,拓扑排序提供了一种执行任务的顺序。
另一个应用是依赖关系解析。每个顶点表示一个软件包,每条边表示软件包 a 对软件包 b 的依赖关系。然后拓扑排序提供了一种安装依赖关系的顺序,使得每个依赖关系的下一个软件包都在前面的软件包之前被安装。
3)参考资料
- 维基百科
- YouTube(Tushar Roy)
9.关节点(或割点)
在一个无向连通图中,如果移除一个顶点(以及通过该顶点的边),会导致图断开,则该顶点被称为关节点(或割点)。关节点代表了连通网络中的脆弱点,即单个点的故障会将网络分割成两个或更多个不连通的部分。它们在设计可靠的网络时非常有用。
对于一个不连通的无向图,关节点是指移除该顶点后,连通分量的数量增加。
参考资料
- GeeksForGeeks
- YouTube
带你读《图解算法小抄》二十五、图(9)https://developer.aliyun.com/article/1347763?groupCode=tech_library