他们的不同之处是:
两个集合U,V
U是构成最小生成树的集合,V原图的集合
prim 每次都是从U的每个点出发,寻找U集合与V集合最近的距离的点,再将V中的该点加入U中
dijksra从原点出发在V找离该点最近的点 p1, 将该距离加入到 dis[i],接着以p1为原点开始找
举个例子就知道他们不能乱来了:
有四个顶点(v0, v1, v2, v3)和四条边且边值定义为(v0, v1)=20, (v0, v2)=10, (v1, v3)=2, (v3, v2)=15的图,用Prim算法得到的最小生成树中v0跟v1是不直接相连的,也就是在最小生成树中v0v1的距离是v0->v2->v3->v1的距离是27,而用Dijkstra算法得到的v0v1的距离是20,也就是二者直接连线的长度。