基础知识
- 简单路径:其上的所有顶点都是互异的,但是第一个和最后一个顶点可能相同。
- 强连通的:如果图内的每个顶点都有到达其他顶点的路径
- 有向图的弱连通:如果边去掉方向后的基础图是连通的,则该有向图是弱连通的。
- 图的表示方法:1 邻接矩阵 2 邻接表
拓扑排序
- 对有向无圈图的顶点的一种排序,比如课程的排序(如线代必须在机器学习这门课前面)复杂度O(v+e)
最短路径算法
单源最短路径
- 无权图 BFS 复杂度O(v+e)
- 有权图 Dijkstra 复杂度O(ElogV)
最小生成树
连接所有的顶点,且边的和最小
- Prim算法:选取一个顶点作为起点,不断地选与到达的点连接的最小的边。(和Dijkstra差不多)复杂度O(ElogV)
- Kruskal算法:不断的选取最小的边,并加入(除非与原来的边形成了圈,判圈可以直接使用union/find),直到到达所有的点。复杂度O(ElogV)