这俩个算法都是找出俩个集合,初始状态下,一个集合S只含有源点,另一个(V-S)含有图的其他顶点。然后是从V-S中挑出顶点到S中....但是这俩个算法还是有很大的区别的。

1,prim算法是用来求最小生成树的,而dijskra算法是用来求任意俩点间的最短路径问题.

2,边的权值修改方式不同。prim中,对V-S中的任意顶点,如果新进入到S中的顶点K,使得K到该顶点的距离最小,则修改该顶点的权值。而dijskra算法中,对v-s中的顶点,如果新加入S的顶点K,使得(源点到K的距离+<Vi,Vk>)小于加入K点前源点到改点的最短距离,则修改该顶点权值。

3,时间复杂度不同。prim算法中,必须求出n个顶点,n-1条边。而dijiskra算法中最多求n个顶点。

4,出发点不同。prim算法是从任意顶点出发,到所有顶点都进入集合S为止。而dijskra算法是从源点开始到汇点结束。