最小生成树是从一个节点到另一个节点的最小边集;
最短路是带权路径,计算权值最小。
最小生成树要经过每一个点,而最短路只需达到某两点的路径权值最小
两个模板区别(开始都保存了1到其他点的距离在dis里,然后更新dis)
dijkstra是每次找最小的dis[p],再用dis[p]+mapn[p][j]<dis[j],更新dis[j];
prime是每次找到最小的dis[p],加进minn里,再用mapn[pos][j]<dis[j],更新dis[j]
prime 保存的是已知点集到剩余的每一个点的最小值,如1找到了2,本来1到4的距离为4,即dis[4]为4,而2到4的距离为3,却由于点集新加入了2,所以更新dis[4]为3,以至于求出经历全部点的最小值
最短路是带权路径,计算权值最小。
最小生成树要经过每一个点,而最短路只需达到某两点的路径权值最小
两个模板区别(开始都保存了1到其他点的距离在dis里,然后更新dis)
dijkstra是每次找最小的dis[p],再用dis[p]+mapn[p][j]<dis[j],更新dis[j];
prime是每次找到最小的dis[p],加进minn里,再用mapn[pos][j]<dis[j],更新dis[j]
更新不同在于,
在dis[j]中
dijkstra 保存的是从起始点到每一个点的最小值,每次遍历更新这个值,为找到某两个点之间的最小值prime 保存的是已知点集到剩余的每一个点的最小值,如1找到了2,本来1到4的距离为4,即dis[4]为4,而2到4的距离为3,却由于点集新加入了2,所以更新dis[4]为3,以至于求出经历全部点的最小值