最小生成树的算法
prim算法是从顶点的角度来刻画生成树的;Kruskal算法是从边的角度来刻画生成树的。
Prim算法和Kruskal算法解决的是最小生成树的问题,所以边的权值可正可负。
同一个图如果有权值相同的边,则两个算法生成的最小生成树可能不相同。
最短路径算法
求取从某点出发的最短路径算法有Dijkstra算法,Floyd算法,Bellman-Ford算法。在求取最短路径的算法中,Dijkstra算法不能处理边的权值为负数的情况。Bellman-ford算法可以处理边的权值为负数的办法。Floyd算法通常可以在任何图中使用,包括权值为负的边。
求取最短路径各算法时间复杂度分别为
Dijstra算法为O(V*V+E)
Floyd算法为O(n^3)
Bellman-ford算法为O(V+E)
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。