(十一) 图

图:由顶点和边组成。

种类:无向图和有向图。

无向图术语:相邻顶点称为路径,终点和起点重合称为圈。

                        任意两点之间有路径连接的图叫连通图,没有圈的连通图叫做树,没有圈的非连通图称为森林。

有向图术语:没有圈的有向图成为DAG(directed acyclic graph)

图的表示:邻接矩阵(用于边多的图中),需要空间O(V^2);邻接表(用于稀疏图)(需要空间O(V+E))。


最短路问题


类型一:单源最短路径问题1,采用Bellman-Ford 算法,复杂度O(EV)

  在图中存在负边的情况下可以使用

(十一) 图_第1张图片

(十一) 图_第2张图片

类型二:单源最短路径问题2,采用Dijkstra算法,复杂度O(Elog(V))

不能在负边的情况下使用

类型三:任意两点间的最短路径问题,采用Floyd-Warshall算法,复杂度O(V^3)

可以用于负边的情况下



路径还原


最小生成树

无向图中,如果任意两顶点连通,并且是一棵树,那么这棵树就叫做生成树,如果有权值,边权最小的生成树叫做最小生成树

假设图是连通的

类型一:最小生成树1,采用prim算法,复杂度为O(V^2),如果用堆来维护的话复杂度为O(Elog(V))。

类型二:最小生成树2,采用kruskal算法,复杂度为O(Elog(V))。


你可能感兴趣的:((十一) 图)